Files
ntbops-ansible/roles/compose_project/tasks/main.yml
T

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]