--- - name: Installer et configurer Portainer 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" portainer_password: "@wp@36#@%yXo2@y78&$mXeN#6E@W2r9d" portainer_service_name: "portainer" portainer_password_file: "portainer_password" pre_tasks: - 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 tasks: - name: Vérifier si le fichier de mot de passe existe déjà stat: path: "{{ git_dest }}/{{ portainer_password_file }}" register: password_file changed_when: false - name: Écrire le mot de passe Portainer dans un fichier temporaire copy: content: "{{ portainer_password }}" dest: "{{ git_dest }}/{{ portainer_password_file }}" mode: "0600" force: true register: write_password until: write_password is success retries: 3 delay: 5 when: not password_file.stat.exists - name: Lancer le service Portainer command: "docker compose up -d --build --remove-orphans {{ portainer_service_name }}" args: chdir: "{{ git_dest }}" register: portainer_launch until: portainer_launch is success retries: 3 delay: 5 notify: Nettoyer les fichiers temporaires handlers: - name: Nettoyer les fichiers temporaires file: path: "{{ git_dest }}/{{ portainer_password_file }}" state: absent register: cleanup until: cleanup is success retries: 3 delay: 5