An open API service indexing awesome lists of open source software.

https://github.com/saltstack-formulas/memcached-formula


https://github.com/saltstack-formulas/memcached-formula

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

memcached
=========

Install and start the memcached service on GNU/Linux and FreeBSD

.. note::

See the full `Salt Formulas installation and usage instructions
`_.

Available states
================

.. contents::
:local:

``memcached``
-------------

Installs and starts memcached service

``memcached.config``
--------------------

Memcached configuration file

``memcached.python_memcached``
------------------------------

Installs ``python-memcached`` package for RedHat/CentOS and ``python-memcache`` package for Debian

``memcached.libmemcached``
--------------------

Installs libmemcached development files to install ``pylibmc`` as python driver

``memcached.uninstall``
-------------

Stops the memcached service and uninstalls the package.

Instructions
============

1. Add this repository as a `GitFS backend`_ in your Salt master config.

2. Determine which minions will run memcached and ``include`` the
``memcached`` state.

One possible example is to run memcached on each server that is also
running your web application. The following contrived example uses a Django
web app deployed from an internal Git repository::

include:
- memcached
- memcached.python_memcached

python-django:
pkg:
- installed

https://internal-repos/mydjangoapp.git:
git.latest:
- target: /var/www/mydjangoapp
- require:
- pkg: python-django
- pkg: python-memcached

3. (Optional) Use Salt Mine to maintain a live list of currently running
memcached instances in your web application config.

The following example assumes all web application servers have a hostname
that starts with "web".

1. Configure your Pillar top file (``/srv/pillar/top.sls``)::

base:
'web*':
- application_server

2. Configure Salt Mine in ``/srv/pillar/application_server.sls``::

mine_functions:
network.interfaces: [eth0]

3. Add the IP addresses to your web application config.

Building on the Django example above, add the following states::

/var/www/mydjangoapp/config.py:
file:
- managed
- source: salt://mydjangoapp/config.py
- template: jinja
- require:
- git: https://internal-repos/mydjangoapp.git

Edit the ``/srv/salt/mydjangoapp/config.py`` template to add the
memcached server addresses (only relevant portions of ``config.py`` are
shown)::

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
{% for server,ip in salt['mine.get']('web*', 'network.interfaces', ['eth0']).items() %}
'{{ ip }}:11211`,
{% endfor %}
]
}
}

.. _`GitFS backend`: http://docs.saltstack.com/topics/tutorials/gitfs.html