Go to file
Seth House a454187d63 Merge pull request #5 from gravyboat/master
Removed the config from the init and put it into it's own state
2014-05-14 16:48:21 -06:00
memcached Removed the config from the init and put it into it's own state. This helps avoid issues where we might need more than one memcached config. 2014-05-14 15:30:37 -07:00
LICENSE Removed Licence Headers, and added info the Licence file. 2014-01-21 00:11:23 +00:00
pillar.example Removed Licence Headers, and added info the Licence file. 2014-01-21 00:11:23 +00:00
README.rst Fixed GitFS docs link 2013-08-06 16:02:02 -06:00

memcached

Install and start the memcached service

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 %}
              ]
          }
      }