76 lines
2.5 KiB
YAML
76 lines
2.5 KiB
YAML
---
|
|
- name: Validate Compose project directory is configured
|
|
ansible.builtin.assert:
|
|
that:
|
|
- compose_project_dir | length > 0
|
|
- compose_project_compose_template_src | length > 0
|
|
fail_msg: "compose_project_dir and compose_project_compose_template_src are required."
|
|
tags: [compose_project]
|
|
|
|
- name: Create Compose project directories
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
loop: "{{ compose_project_directories }}"
|
|
tags: [compose_project, directories]
|
|
|
|
- name: Ensure Compose project proxy network exists
|
|
community.docker.docker_network:
|
|
name: "{{ compose_project_proxy_network }}"
|
|
state: present
|
|
when:
|
|
- compose_project_create_proxy_network | bool
|
|
- compose_project_proxy_network | length > 0
|
|
tags: [compose_project, docker]
|
|
|
|
- name: Render Compose project environment file
|
|
ansible.builtin.template:
|
|
src: "{{ compose_project_env_template_src }}"
|
|
dest: "{{ compose_project_env_dest }}"
|
|
owner: root
|
|
group: root
|
|
mode: "{{ compose_project_env_mode }}"
|
|
when: compose_project_env_template_src | length > 0
|
|
no_log: true
|
|
tags: [compose_project, config]
|
|
|
|
- name: Render Compose project file
|
|
ansible.builtin.template:
|
|
src: "{{ compose_project_compose_template_src }}"
|
|
dest: "{{ compose_project_compose_dest }}"
|
|
owner: root
|
|
group: root
|
|
mode: "{{ compose_project_compose_mode }}"
|
|
notify: restart compose project
|
|
tags: [compose_project, compose]
|
|
|
|
- name: Render Compose project override file
|
|
ansible.builtin.template:
|
|
src: "{{ compose_project_override_template_src }}"
|
|
dest: "{{ compose_project_override_dest }}"
|
|
owner: root
|
|
group: root
|
|
mode: "{{ compose_project_override_mode }}"
|
|
when: compose_project_override_template_src | length > 0
|
|
notify: restart compose project
|
|
tags: [compose_project, compose]
|
|
|
|
- name: Allow Compose project firewall ports
|
|
community.general.ufw:
|
|
rule: allow
|
|
port: "{{ item.port | default(item.host | default(item.container | default(item))) }}"
|
|
proto: "{{ item.proto | default(item.protocol | default('tcp')) }}"
|
|
loop: "{{ compose_project_firewall_ports }}"
|
|
when: compose_project_firewall_enabled | bool
|
|
tags: [compose_project, firewall]
|
|
|
|
- name: Start Compose project
|
|
community.docker.docker_compose_v2:
|
|
project_src: "{{ compose_project_dir }}"
|
|
state: "{{ compose_project_state }}"
|
|
pull: "{{ compose_project_pull }}"
|
|
tags: [compose_project, compose]
|