diff --git a/ansible/celery.service b/ansible/celery.service new file mode 100644 index 0000000000000000000000000000000000000000..2e1f4dcc6369191efca40a3d6772adc8265ecdd3 --- /dev/null +++ b/ansible/celery.service @@ -0,0 +1,21 @@ +[Unit] +Description=Celery Service +After=network.target + +[Service] +Type=forking +User=jass +Group=nginx +EnvironmentFile=-/etc/default/ippidb-{{ http_port }}-celeryd +WorkingDirectory=/var/ippidb-{{ http_port }} +ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \ + -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \ + --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}' +ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \ + --pidfile=${CELERYD_PID_FILE}' +ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \ + -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \ + --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}' + +[Install] +WantedBy=multi-user.target diff --git a/ansible/celeryd b/ansible/celeryd new file mode 100644 index 0000000000000000000000000000000000000000..d5ff5f59b08ce5c8ad2a7d6117b569bf45cb68a6 --- /dev/null +++ b/ansible/celeryd @@ -0,0 +1,11 @@ +CELERYD_NODES="worker" +CELERY_BIN="celery" +CELERY_APP="ippisite" +CELERYD_CHDIR="/var/ippidb-{{ http_port }}-celery" +CELERYD_OPTS="--time-limit=3000 --concurrency=1 --max-tasks-per-child=1" +CELERYD_LOG_FILE="/var/ippidb-{{ http_port }}-celery/celery%N.log" +CELERYD_PID_FILE="/var/ippidb-{{ http_port }}-celery/celery%N.pid" +CELERYD_LOG_LEVEL="DEBUG" +CELERYD_USER="" +CELERYD_GROUP="nginx" +CELERY_CREATE_DIRS=1 diff --git a/ansible/deploy.yaml b/ansible/deploy.yaml index 857e7bef0bbe185d34c06e3b5c6adc0641fb0936..447d49fa92818d11d2c2a96a955ee3c1d91dc08d 100644 --- a/ansible/deploy.yaml +++ b/ansible/deploy.yaml @@ -121,6 +121,24 @@ systemd: state=stopped name=ippidb-web #ignore fail (i.e. when service does not exist yet) ignore_errors: yes + - name: stop celery service + systemd: state=stopped name=celery enabled=true + ignore_errors: yes + # + # Set up celery service + # + - name: copy celeryd configuration file + copy: + src: celeryd + dest: /etc/default + owner: root + group: root + - name: copy celery systemd service + copy: + src: celery.service + dest: /lib/systemd/system/celery.service + owner: root + group: root # # Fetch/Update code and prep django app for publication # @@ -186,7 +204,7 @@ ('EMAIL_ADMIN', 'hmenager@pasteur.fr'), ] MANAGERS = [ - ('EMAIL_MANAGER', 'hmenager@pasteur.fr'), + ('EMAIL_MANAGER', 'ippidb@pasteur.fr'), ] LOGGING = { 'version': 1, @@ -290,4 +308,9 @@ # Start web server # - name: start iPPIDB service if relevant - systemd: state=started name=ippidb{{ http_port }}-web enabled=true \ No newline at end of file + systemd: state=started name=ippidb{{ http_port }}-web enabled=true + # + # Start celery service + # + - name: start celery service if relevant + systemd: state=started name=celery enabled=true daemon_reload=true