diff --git a/tasks/docker_compose.yml b/tasks/docker_compose.yml index 4fb1e7c..46ec3b3 100644 --- a/tasks/docker_compose.yml +++ b/tasks/docker_compose.yml @@ -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 diff --git a/tasks/docker_compose_configs.yml b/tasks/docker_compose_configs.yml new file mode 100644 index 0000000..dfaaa78 --- /dev/null +++ b/tasks/docker_compose_configs.yml @@ -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 }}" diff --git a/tasks/main.yml b/tasks/main.yml index 5fcab79..dc7a11a 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -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 diff --git a/tasks/start.yml b/tasks/start.yml new file mode 100644 index 0000000..f777f39 --- /dev/null +++ b/tasks/start.yml @@ -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 diff --git a/templates/docker-compose.yml b/templates/docker-compose.yml deleted file mode 100644 index 37146fc..0000000 --- a/templates/docker-compose.yml +++ /dev/null @@ -1 +0,0 @@ -{{ docker_compose_definition | to_nice_yaml(indent=2) }} \ No newline at end of file diff --git a/templates/docker-compose.yml.j2 b/templates/docker-compose.yml.j2 new file mode 100644 index 0000000..593a8bf --- /dev/null +++ b/templates/docker-compose.yml.j2 @@ -0,0 +1,3 @@ +name: {{ docker_compose_project_name }} + +{{ docker_compose_definition | to_nice_yaml(indent=2) }}