hosts: web
vars:
user: "{{ ansible_user }}"
- proj_name: mezzanine_example
+ proj_app: mezzanine_example
+ proj_name: "{{ proj_app }}"
venv_home: "{{ ansible_env.HOME }}/.virtualenvs"
venv_path: "{{ venv_home }}/{{ proj_name }}"
proj_dirname: project
database_host: localhost
database_port: 5432
gunicorn_proc_name: mezzanine
+ num_workers: "multiprocessing.cpu_count() * 2 + 1"
vars_files:
- secrets.yml
tasks:
environment:
PATH: "{{ venv_path }}/bin"
PROJECT_DIR: "{{ proj_path }}"
- PROJECT_APP: "{{ proj_name }}"
+ PROJECT_APP: "{{ proj_app }}"
WEBSITE_DOMAIN: "{{ live_hostname }}"
- name: set the admin password
script: scripts/setadmin.py
environment:
PATH: "{{ venv_path }}/bin"
PROJECT_DIR: "{{ proj_path }}"
- PROJECT_APP: "{{ proj_name }}"
+ PROJECT_APP: "{{ proj_app }}"
ADMIN_PASSWORD: "{{ admin_pass }}"
handlers:
- name: restart supervisor
- supervisorctl: name=gunicorn_mezzanine state=restarted
+ supervisorctl: "name=gunicorn_{{ proj_name }} state=restarted"
become: True
- name: restart nginx
service: name=nginx state=restarted
become: True
- name: restart postgres
service: name=postgresql state=restarted
-
from __future__ import unicode_literals
import multiprocessing
-bind = "127.0.0.1:{{ gunicorn_port }}"
-workers = multiprocessing.cpu_count() * 2 + 1
+bind = "unix:{{ proj_path }}/gunicorn.sock"
+workers = {{ num_workers }}
+errorlog = "/home/{{ user }}/logs/{{ proj_name }}_error.log"
loglevel = "error"
proc_name = "{{ proj_name }}"
-[group: {{proj_name}}]
-programs=gunicorn_{{ proj_name }}
-
[program:gunicorn_{{ proj_name }}]
-command={{ venv_path }}/bin/gunicorn_django -c gunicorn.conf.py -p gunicorn.pid
+command={{ venv_path }}/bin/gunicorn -c gunicorn.conf.py -p gunicorn.pid {{ proj_app }}.wsgi:application
directory={{ proj_path }}
user={{ user }}
autostart=true
+stdout_logfile = /home/{{ user }}/logs/{{ proj_name }}_supervisor
autorestart=true
redirect_stderr=true
environment=LANG="{{ locale }}",LC_ALL="{{ locale }}",LC_LANG="{{ locale }}"