refactor compose deploy

This commit is contained in:
Nikita Simonov
2026-05-22 20:30:47 +04:00
parent dab901147c
commit efce508e16
6 changed files with 54 additions and 11 deletions

View File

@@ -12,17 +12,9 @@
dest: "{{ docker_compose_data_dir }}/.env"
notify: Restart {{ role_name }} project
- name: Copy {{ role_name }} config
- name: Copy {{ role_name }} compose
ansible.builtin.template:
src: docker-compose.yml
src: docker-compose.yml.j2
dest: "{{ docker_compose_data_dir }}/docker-compose.yml"
notify: Restart {{ role_name }} project
when: docker_compose_definition is defined
- name: Start {{ role_name }} project
ansible.builtin.command: docker compose -p {{ docker_compose_project_name }} up -d
args:
chdir: "{{ docker_compose_data_dir }}"
register: result
changed_when: "'up-to-date' not in result.stderr"
when: docker_compose_definition is defined

View File

@@ -0,0 +1,30 @@
# - name: degug
# ansible.builtin.debug:
# msg: "dir_name: {{ item.0.dir_name }}; files: {{ item.1 }}"
# loop: "{{ docker_compose_configs | subelements('files') }}"
# loop_control:
# label: "{{ item.0.dir_name }}"
- name: Ensure {{ role_name }} configs dir exists
ansible.builtin.file:
path: "{{ docker_compose_data_dir }}/configs"
state: directory
group: "{{ docker_group }}"
mode: "0770"
- name: Ensure {{ role_name }} configs dirs exists
ansible.builtin.file:
path: "{{ docker_compose_data_dir }}/configs/{{ item.dir_name }}"
state: directory
group: "{{ docker_group }}"
mode: "0770"
loop: "{{ docker_compose_configs }}"
- name: Copy {{ role_name }} config
ansible.builtin.template:
src: "{{ playbook_dir }}/templates/{{ docker_compose_project_name }}/{{ item.0.dir_name }}/{{ item.1 }}.j2"
dest: "{{ docker_compose_data_dir }}/configs/{{ item.0.dir_name }}/{{ item.1 }}"
notify: Restart {{ role_name }} project
loop: "{{ docker_compose_configs | subelements('files') }}"
loop_control:
label: "{{ item.0.dir_name }}"

View File

@@ -4,3 +4,15 @@
when: docker_compose_project_name is defined
tags:
- docker_compose
- name: Include {{ role_name }}_configs tasks
ansible.builtin.include_tasks: "{{ role_name }}_configs.yml"
when: docker_compose_configs is defined
tags:
- docker_compose_configs
- name: Include start tasks
ansible.builtin.include_tasks: "start.yml"
when: docker_compose_project_name is defined
tags:
- docker_compose_start

7
tasks/start.yml Normal file
View File

@@ -0,0 +1,7 @@
- name: Start {{ role_name }} project
ansible.builtin.command: docker compose -p {{ docker_compose_project_name }} up -d
args:
chdir: "{{ docker_compose_data_dir }}"
register: result
changed_when: "'up-to-date' not in result.stderr"
when: docker_compose_definition is defined