82 lines
2.0 KiB
YAML
82 lines
2.0 KiB
YAML
---
|
|
- name: Install service dependencies
|
|
apt:
|
|
update_cache: true
|
|
install_recommends: false
|
|
name: "{{ service.dependencies }}"
|
|
register: apt_result
|
|
retries: 3
|
|
until: apt_result is succeeded
|
|
when: service.dependencies is defined
|
|
|
|
- name: Create service directory
|
|
file:
|
|
path: "{{ service.install_dir }}"
|
|
state: directory
|
|
mode: "2775"
|
|
owner: root
|
|
group: _nounou
|
|
|
|
- name: Set ACL for service directory
|
|
acl:
|
|
path: "{{ service.install_dir }}"
|
|
default: true
|
|
entity: _nounou
|
|
etype: group
|
|
permissions: rwx
|
|
state: query
|
|
|
|
- name: Clone service repository
|
|
git:
|
|
repo: "{{ service.git.remote }}"
|
|
version: "{{ service.git.version }}"
|
|
dest: "{{ service.install_dir }}"
|
|
umask: "002"
|
|
|
|
- name: Create generated directory
|
|
file:
|
|
path: "{{ service.install_dir }}/generated"
|
|
state: directory
|
|
mode: "2770"
|
|
owner: root
|
|
group: _nounou
|
|
when: service.generated is defined and service.generated
|
|
|
|
- name: Deploy re2o config
|
|
template:
|
|
src: service/re2o-config.ini.j2
|
|
dest: "{{ service.install_dir }}/re2o-config.ini"
|
|
mode: 0600
|
|
owner: root
|
|
group: root
|
|
when: service.re2o is defined
|
|
|
|
- name: Deploy cron for service
|
|
template:
|
|
src: cron.d/service.j2
|
|
dest: /etc/cron.d/services-{{ service.name }}
|
|
when: service.cron is defined and service.cron.frequency is defined
|
|
|
|
- name: Deploy systemd service
|
|
template:
|
|
src: systemd/system/service.service.j2
|
|
dest: /etc/systemd/system/services-{{ service.name }}.service
|
|
notify:
|
|
- systemctl daemon-reload
|
|
when: service.systemd is defined
|
|
|
|
- name: Deploy systemd timer
|
|
template:
|
|
src: systemd/system/service.timer.j2
|
|
dest: /etc/systemd/system/services-{{ service.name }}.timer
|
|
notify:
|
|
- Restart timer
|
|
- systemctl daemon-reload
|
|
when: service.timer is defined
|
|
|
|
- name: Deploy service configuration
|
|
template:
|
|
src: service/config.json
|
|
dest: "{{ service.install_dir }}/{{ service.name }}.json"
|
|
when: service.config is defined
|