Advertisement
Guest User

Untitled

a guest
Jun 24th, 2014
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. #!jinja|yaml
  2.  
  3. {% set projects = pillar.get('projects',{}).get('active',{}) %}
  4. {% set logger_types = ('access', 'error') %}
  5.  
  6. # salt '*' pip.install <package name> bin_env=/path/to/virtualenv
  7. {% for proj_name, proj_conf in projects.iteritems() %}
  8. {% set domain = proj_conf.get('domain','') %}
  9. {% set proj_home = "/var/www/" + domain %}
  10. {% if proj_name == 'main' and grains.get('id', '') == 'server1' %}
  11.  
  12. {{ proj_home }}/gunicorn.conf:
  13. file:
  14. - managed
  15. - name: {{ proj_home }}/gunicorn.conf
  16. - source: salt://gunicorn/gunicorn.conf
  17. - template: jinja
  18. - context:
  19. - domain: {{ domain }}
  20. - proj_name: {{ proj_name }}
  21. - bound_port: {{ proj_conf.get('port', '8000') }}
  22. {% if proj_conf.get('django', False) -%}
  23. - django_settings_module: {{ proj_home }}/{{ proj_conf.get('short', proj_name) }}/settings.py
  24. {% endif -%}
  25.  
  26. /etc/init/{{ proj_name }}_gunicorn.conf:
  27. file:
  28. - managed
  29. - name: /etc/init/{{ proj_name }}_gunicorn.conf
  30. - template: jinja
  31. - user: root
  32. - group: root
  33. - mode: 440
  34. - source: salt://gunicorn/upstart.jinja
  35. - context:
  36. proj_name: {{ proj_name }}
  37. domain: {{ domain }}
  38.  
  39.  
  40. {% for log_type in ('error','access') %}
  41. gunicorn-logger-{{ proj_name }}-{{ log_type }}.conf:
  42. file:
  43. - managed
  44. - name: /etc/init/gunicorn-logger-{{ proj_name }}-{{ log_type }}.conf
  45. - template: jinja
  46. - user: root
  47. - group: root
  48. - mode: 440
  49. - source: salt://gunicorn/upstart-logger.jinja
  50. - context:
  51. type: {{ log_type }}
  52. proj_name: {{ proj_name }}
  53. service.running:
  54. - enable: True
  55. - require:
  56. - file: gunicorn-logger-{{ proj_name }}-{{ log_type }}.conf
  57. - require_in:
  58. - service: gunicorn
  59. {% endfor %}
  60.  
  61. gunicorn_{{ proj_name }}:
  62. pip.installed:
  63. - name: gunicorn
  64. - bin_env: /var/www/{{ domain }}
  65. - require:
  66. - pkg: python-pip
  67. - file: {{ proj_home }}/run
  68. service.running:
  69. - name: gunicorn
  70. - enable: True
  71. - restart: True
  72. - bin_env: /var/www/{{ domain }}
  73. - onchanges:
  74. - file: {{ proj_home }}/gunicorn.conf
  75. - file: {{ proj_home }}/run
  76. - pkg: gunicorn
  77.  
  78.  
  79. {% endif %}
  80.  
  81. {% endfor %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement