53 lines
1.7 KiB
YAML
53 lines
1.7 KiB
YAML
---
|
|
- name: Local Loopback Deployment Operations
|
|
hosts: minipc
|
|
gather_facts: false
|
|
tasks:
|
|
- name: Check if prometheus.yml is a directory
|
|
ansible.builtin.stat:
|
|
path: /opt/homelab/data/prometheus/prometheus.yml
|
|
register: prom_stat
|
|
|
|
- name: Remove prometheus.yml if it is a directory
|
|
ansible.builtin.file:
|
|
path: /opt/homelab/data/prometheus/prometheus.yml
|
|
state: absent
|
|
when: prom_stat.stat.isdir is defined and prom_stat.stat.isdir
|
|
|
|
- name: Sync GitOps stacks to target machine
|
|
ansible.posix.synchronize:
|
|
src: "{{ playbook_dir }}/docker/stacks/"
|
|
dest: /opt/homelab/stacks/
|
|
archive: yes
|
|
delete: no
|
|
recursive: yes
|
|
rsync_opts:
|
|
- "--exclude=.git"
|
|
- "--exclude=.gitignore"
|
|
|
|
- name: Sync GitOps data to target machine
|
|
ansible.posix.synchronize:
|
|
src: "{{ playbook_dir }}/docker/data/"
|
|
dest: /opt/homelab/data/
|
|
archive: yes
|
|
delete: no
|
|
recursive: yes
|
|
rsync_opts:
|
|
- "--exclude=.git"
|
|
- "--exclude=.gitignore"
|
|
|
|
- name: Identify all docker-compose stack directories
|
|
ansible.builtin.find:
|
|
paths: /opt/homelab/stacks
|
|
file_type: file
|
|
patterns: "docker-compose.yml"
|
|
recurse: yes
|
|
register: compose_files
|
|
|
|
- name: Apply Docker Compose configurations
|
|
ansible.builtin.command: docker compose up -d --remove-orphans
|
|
args:
|
|
chdir: "{{ item.path | dirname }}"
|
|
loop: "{{ compose_files.files }}"
|
|
register: compose_results
|
|
changed_when: "'Started' in compose_results.stdout or 'Created' in compose_results.stdout or 'Recreated' in compose_results.stdout" |