aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles
diff options
context:
space:
mode:
authorMilo Casagrande <milo.casagrande@linaro.org>2015-01-29 14:17:57 +0100
committerMilo Casagrande <milo.casagrande@linaro.org>2015-01-29 14:17:57 +0100
commitf293f9316f3dcdaf736aea86fecccffc2f155276 (patch)
tree098faa413eb372bb3a1a4f5b9d6125158731bdfa /ansible/roles
parent8c8af22b4cea5929a32cf650be6e3f26282cb70a (diff)
Add new celery config and init scripts.
Change-Id: I647ae1ba6e55fbec85fdc7df9037de95878159f6
Diffstat (limited to 'ansible/roles')
-rw-r--r--ansible/roles/init-conf/tasks/main.yml40
-rw-r--r--ansible/roles/init-conf/templates/celery.conf4
-rw-r--r--ansible/roles/init-conf/templates/kernelci-celery-beat.conf26
-rw-r--r--ansible/roles/init-conf/templates/kernelci-celery-beat.service23
4 files changed, 91 insertions, 2 deletions
diff --git a/ansible/roles/init-conf/tasks/main.yml b/ansible/roles/init-conf/tasks/main.yml
index 1997f57..4908ff1 100644
--- a/ansible/roles/init-conf/tasks/main.yml
+++ b/ansible/roles/init-conf/tasks/main.yml
@@ -1,5 +1,13 @@
---
+- name: Make sure celery run directory exists
+ file: path=/var/run/celery
+ state=directory
+ owner={{ app_user }}
+ group={{ app_user }}
+ tags:
+ - init
+
- name: Install Upstart conf
template: src=kernel-ci-backend.conf
dest=/etc/init/{{ init_service }}.conf
@@ -54,6 +62,28 @@
- init
- systemd
+- name: Install celery beat upstart configuration
+ template: src=kernelci-celery-beat.conf
+ dest=/etc/init/kernelci-celery-beat.conf
+ owner=root
+ group=root
+ mode=0644
+ when: ansible_lsb.id == "Ubuntu"
+ tags:
+ - init
+ - upstart
+
+- name: Install celery beat systemd service
+ template: src=kernelci-celery-beat.service
+ dest=/etc/systemd/system/kernelci-celery-beat.service
+ owner=root
+ group=root
+ mode=0644
+ when: ansible_lsb.id == "Debian"
+ tags:
+ - init
+ - systemd
+
- name: Enable celery systemd service
command: /bin/systemctl enable kernelci-celery.service
creates=/etc/systemd/system/multi-user.target.wants/kernelci-celery.service
@@ -64,3 +94,13 @@
- init
- systemd
+- name: Enable celery beat systemd service
+ command: /bin/systemctl enable kernelci-celery-beat.service
+ creates=/etc/systemd/system/multi-user.target.wants/kernelci-celery-beat.service
+ when: ansible_lsb.id == "Debian"
+ notify:
+ - reload-systemd
+ tags:
+ - init
+ - systemd
+
diff --git a/ansible/roles/init-conf/templates/celery.conf b/ansible/roles/init-conf/templates/celery.conf
index 688b239..3742ee7 100644
--- a/ansible/roles/init-conf/templates/celery.conf
+++ b/ansible/roles/init-conf/templates/celery.conf
@@ -2,8 +2,8 @@
author "Milo Casagrande <milo.casagrande@linaro.org>"
description "Configuration to run celery at startup."
-start on started redis-server
-stop on stopping redis-server
+start on started kernelci-backend
+stop on stopping kernelci-backend
respawn
respawn limit 10 5
diff --git a/ansible/roles/init-conf/templates/kernelci-celery-beat.conf b/ansible/roles/init-conf/templates/kernelci-celery-beat.conf
new file mode 100644
index 0000000..e104f2b
--- /dev/null
+++ b/ansible/roles/init-conf/templates/kernelci-celery-beat.conf
@@ -0,0 +1,26 @@
+# Managed by ansible, do not edit.
+author "Milo Casagrande <milo.casagrande@linaro.org>"
+description "Configuration to run celery at startup."
+
+start on started kernelci-celery
+stop on stopping kernelci-celery
+
+respawn
+respawn limit 10 5
+
+kill timeout 6
+
+limit nofile 4096 65536
+
+setuid {{ app_user }}
+setgid {{ app_user }}
+
+chdir {{ install_base }}/{{ hostname }}/app
+
+script
+ if [ -d {{ install_base }}/.venv/{{ hostname }} ]; then
+ {{ install_base }}/.venv/{{ hostname }}/bin/celery beat --loglevel=INFO --schedule /var/run/celery/kernelci-beat.db --app=taskqueue
+ else
+ exec celery beat --loglevel=INFO --schedule /var/run/celery/kernelci-beat.db --app=taskqueue
+ fi
+end script
diff --git a/ansible/roles/init-conf/templates/kernelci-celery-beat.service b/ansible/roles/init-conf/templates/kernelci-celery-beat.service
new file mode 100644
index 0000000..a0d5add
--- /dev/null
+++ b/ansible/roles/init-conf/templates/kernelci-celery-beat.service
@@ -0,0 +1,23 @@
+[Unit]
+Description=Kernel CI Backend Celery Beat
+
+[Service]
+Type=simple
+User={{ app_user }}
+Group={{ app_user }}
+ProtectHome=true
+NoNewPrivileges=true
+PrivateTmp=true
+SyslogIdentifier=kernelci-celery-beat
+LimitNOFILE=65536
+RestartSec=5
+Restart=always
+PIDFile=/tmp/kernelci-celery-beat.pid
+WorkingDirectory={{ install_base }}/{{ hostname }}/app
+ExecStart={{ install_base }}/.venv/{{ hostname }}/bin/python -OO -R \
+ {{ install_base }}/.venv/{{ hostname }}/bin/celery beat \
+ --loglevel=INFO --schedule=/var/run/celery/kernelci-beat.db
+ --app=taskqueue
+
+[Install]
+WantedBy=multi-user.target