--- - 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: "{{ service.generated_owner|default(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 service configuration template: src: service/config.json dest: "{{ service.install_dir }}/{{ service.name }}.json" when: service.config is defined