mirror of
https://github.com/RWejlgaard/pez-infra.git
synced 2026-05-06 04:14:43 +00:00
* change provider for plex metrics * update plex token * update plex token loading
65 lines
2.4 KiB
YAML
65 lines
2.4 KiB
YAML
---
|
|
# Deploy Docker Compose services from the repo's services/ directory.
|
|
# Expects docker_services list in host_vars and compose files in services/<name>/.
|
|
|
|
- name: Ensure service directories exist
|
|
ansible.builtin.file:
|
|
path: "/opt/docker/{{ item }}"
|
|
state: directory
|
|
mode: '0755'
|
|
loop: "{{ docker_services | default([]) }}"
|
|
|
|
- name: Template service .env files
|
|
ansible.builtin.template:
|
|
src: "{{ docker_services_dir | default(playbook_dir + '/services') }}/{{ item }}/.env.j2"
|
|
dest: "/opt/docker/{{ item }}/.env"
|
|
mode: '0600'
|
|
loop: "{{ docker_services | default([]) }}"
|
|
when: lookup('ansible.builtin.fileglob', (docker_services_dir | default(playbook_dir + '/services')) + '/' + item + '/.env.j2') | length > 0
|
|
no_log: true
|
|
failed_when: false
|
|
register: docker_services_env_files
|
|
|
|
- name: Copy docker-compose files
|
|
ansible.builtin.template:
|
|
src: "{{ docker_services_dir | default(playbook_dir + '/services') }}/{{ item }}/docker-compose.yml"
|
|
dest: "/opt/docker/{{ item }}/docker-compose.yml"
|
|
mode: '0644'
|
|
loop: "{{ docker_services | default([]) }}"
|
|
register: docker_services_compose_files
|
|
failed_when: false
|
|
|
|
- name: Copy service config files
|
|
ansible.posix.synchronize:
|
|
src: "{{ docker_services_dir | default(playbook_dir + '/services') }}/{{ item }}/"
|
|
dest: "/opt/docker/{{ item }}/"
|
|
rsync_opts:
|
|
- "--exclude=docker-compose.yml"
|
|
- "--exclude=README.md"
|
|
- "--exclude=.gitkeep"
|
|
- "--exclude=*.j2"
|
|
loop: "{{ docker_services | default([]) }}"
|
|
failed_when: false
|
|
|
|
- name: Template service .env files
|
|
ansible.builtin.template:
|
|
src: "{{ playbook_dir }}/services/{{ item }}/.env.j2"
|
|
dest: "/opt/docker/{{ item }}/.env"
|
|
mode: '0600'
|
|
loop: "{{ docker_services | default([]) }}"
|
|
when: lookup('ansible.builtin.fileglob', playbook_dir + '/services/' + item + '/.env.j2') | length > 0
|
|
no_log: true
|
|
failed_when: false
|
|
|
|
- name: Start/update docker compose services
|
|
community.docker.docker_compose_v2:
|
|
project_src: "/opt/docker/{{ item.item }}"
|
|
state: present
|
|
pull: policy
|
|
loop: "{{ docker_services_compose_files.results | default([]) }}"
|
|
when: >
|
|
(item is not failed and item is changed) or
|
|
(docker_services_env_files.results | default([]) |
|
|
selectattr('item', 'equalto', item.item) |
|
|
selectattr('changed', 'equalto', true) | list | length > 0)
|
|
failed_when: false
|