--- - name: Déploiement Docker et application via Docker Compose hosts: servers become: true gather_facts: true vars: git_repo: "https://gite.slm-lab.net/Chabdeltsang/Neah-Enkun.git" git_dest: "/opt/Neah-Enkun" git_branch: "master" traefik_service_name: "traefik" packages: - jq docker_packages: - apt-transport-https - ca-certificates - curl - gnupg-agent - software-properties-common docker_core_packages: - docker-ce - docker-ce-cli - containerd.io - docker-compose pre_tasks: - name: Mise à jour des paquets apt: update_cache: true cache_valid_time: 3600 upgrade: dist register: apt_update_status until: apt_update_status is success retries: 3 delay: 5 tasks: - name: Installation de packages supplémentaires apt: name: "{{ packages }}" state: present register: pkg_status until: pkg_status is success retries: 3 delay: 5 - name: Installer les dépendances pour Docker apt: name: "{{ docker_packages }}" state: present register: pkg_status until: pkg_status is success retries: 3 delay: 5 - name: Ajouter la clé GPG officielle de Docker apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present register: gpg_status until: gpg_status is success retries: 3 delay: 5 - name: Ajouter le dépôt Docker apt_repository: repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" state: present update_cache: true register: repo_status until: repo_status is success retries: 3 delay: 5 - name: Installer Docker et ses composants apt: name: "{{ docker_core_packages }}" state: present register: docker_status until: docker_status is success retries: 3 delay: 5 - name: S'assurer que le service Docker est démarré et activé service: name: docker state: started enabled: true register: docker_service_status until: docker_service_status is success retries: 3 delay: 5 - name: Cloner le dépôt Git git: repo: "{{ git_repo }}" dest: "{{ git_dest }}" version: "{{ git_branch }}" update: true force: true register: git_status until: git_status is success retries: 3 delay: 5 #TODO: Supprimer en prod - name: Supprimer tous les conteneurs command: "docker compose down -v" args: chdir: "{{ git_dest }}" register: rm_status until: rm_status is success retries: 3 delay: 5 ignore_errors: yes - name: Lancer le service Traefik command: "docker compose up -d --build --remove-orphans {{ traefik_service_name }}" args: chdir: "{{ git_dest }}" register: traefik_status until: traefik_status is success retries: 3 delay: 5 changed_when: traefik_status.rc == 0 handlers: - name: Redémarrer Docker service: name: docker state: restarted