Split role from infra repo

This commit is contained in:
2023-05-05 22:19:15 +02:00
commit 666e7a9ae1
10 changed files with 211 additions and 0 deletions

68
tasks/create.yml Normal file
View File

@ -0,0 +1,68 @@
---
- block:
- name: Create Temporary directory
tempfile:
state: directory
changed_when: false
register: temp_file
- name: Create directory structure
file:
state: directory
dest: '{{ temp_file.path }}/{{ item.path }}'
mode: "{{ item.mode }}"
changed_when: false
with_filetree: "./templates/{{ service | mandatory }}"
when: item.state == 'directory'
loop_control:
label: '{{ item.path }}'
- name: Template Service Files
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ temp_file.path }}/{{ item.path }}"
mode: "{{ item.mode }}"
force: true
trim_blocks: false
changed_when: false
with_filetree: "./templates/{{ service | mandatory }}"
loop_control:
label: '{{ item.path }}'
when: item.state == 'file'
delegate_to: localhost
check_mode: no
- name: Create Service Directory
file:
state: directory
path: "{{ compose_dir | mandatory }}"
- name: Copy Compose files
become: false
ansible.posix.synchronize:
src: "{{ temp_file.path | mandatory }}/"
dest: "{{ service_dir | mandatory }}"
archive: false
checksum: true
delete: true
recursive: true
mode: push
owner: false
group: false
perms: false
register: compose_files
- name: Delete temporary directory
ansible.builtin.file:
path: "{{ temp_file.path }}"
state: absent
changed_when: false
- name: Restart Service
community.docker.docker_compose:
project_src: "{{ service_dir | mandatory }}"
state: present
restarted: true
recreate: smart
build: true
remove_orphans: true
when: (compose_files.changed and restart == "smart") or restart == "always"

18
tasks/main.yml Normal file
View File

@ -0,0 +1,18 @@
---
- name: Set service_dir
ansible.builtin.set_fact:
service_dir: "{{ compose_dir | mandatory }}/{{ service | mandatory }}{% if service_name is defined %}-{{ service_name }}{% endif %}"
cacheable: true
- ansible.builtin.debug:
msg: "Working on {{ service }}{% if service_name is defined %}-{{ service_name }}{% endif %}"
verbosity: 0
- include_tasks: create.yml
when: state == "present"
- include_tasks: remove.yml
when: state == "absent"
...

18
tasks/remove.yml Normal file
View File

@ -0,0 +1,18 @@
---
- name: Check if service is present
stat:
path: "{{ service_dir | mandatory }}"
register: dir
- name: Stop Service
community.docker.docker_compose:
project_src: "{{ service_dir | mandatory }}"
state: absent
remove_orphans: true
when: dir.stat.exists == True
- name: Remove Service
file:
state: absent
path: "{{ service_dir | mandatory }}"
when: dir.stat.exists == True