diff --git a/roles/demolamp/tasks/deploy.yml b/roles/demolamp/tasks/deploy.yml index e0466ee..d710be9 100644 --- a/roles/demolamp/tasks/deploy.yml +++ b/roles/demolamp/tasks/deploy.yml @@ -1,15 +1,65 @@ --- + +- name: Housekeep pervious temporary directory + ansible.builtin.file: + path: "{{ pathTemp }}" + state: absent + +- name: Create a temporary directory on remote nodes + ansible.builtin.file: + path: "{{ pathTemp }}" + state: directory + owner: root + group: root + mode: '0755' + # Deploy stage ------------------------------------------------------------- # -- Target: The first node only. # -- Objective: Stack startup. - block: - - name: run docker - community.docker.docker_container: - name: "{{ stackName }}" - state: started - recreate: yes - image: "{{ demolamp.imageName }}:{{ ansTagVer }}" - ports: - - "80:80" + - name: Create a directory on remote host if not exists for docker-compose file + ansible.builtin.file: + path: "{{ pathCompose }}" + state: directory + owner: root + group: root + mode: '0755' + + - name: Check compose file exists + ansible.builtin.stat: + path: "{{ pathCompose }}/{{ fileCompose }}" + ignore_errors: True + register: chk_composeFile + + - name: Deploy the docker compose file + ansible.builtin.template: + src: "{{ role_path }}/files/{{ ansTagVer }}/{{ templateCompose }}" + dest: "{{ pathCompose }}/{{ fileCompose }}" + owner: root + group: root + mode: "0755" + force: yes + backup: yes + when: updateComposeTpl | bool or not chk_composeFile.stat.exists + + - name: Docker login to ECV private repository if not pull from local registry + community.docker.docker_login: + registry: "{{ imagePullDomain }}" + username: "{{ registryUser }}" + password: "{{ registryPass }}" + state: present + when: not localRegistry | bool + + - name: Prune docker containers + community.docker.docker_prune: + containers: yes + + - name: Deploy the Redis-HA service + community.docker.docker_stack: + name: "{{ stackName }}" + compose: + - "{{ pathCompose }}/{{ fileCompose }}" + state: present + with_registry_auth : yes