--- # Playbook pour l'installation et la configuration de Portainer CE # Utilise l'approche basée sur les scripts init.sh et maj.sh du dépôt Git - name: "Déploiement de Portainer CE" hosts: all become: true vars: # Configuration du dépôt Git portainer_repo_url: "https://git.dracodev.net/Dockers/portainer.git" portainer_repo_dir: "{{ ansible_user_dir }}/dev/git/outils/dockers/portainer" repo_user: "bruno" repo_pwd: "chab30" # Option de mise à jour (true/false) portainer_update: true tasks: # Créer le répertoire parent - name: "Créer le répertoire parent pour le dépôt Portainer" file: path: "{{ portainer_repo_dir | dirname }}" state: directory mode: '0755' recurse: true # Cloner le dépôt Git - name: "Cloner le dépôt Portainer" git: repo: "https://{{ repo_user }}:{{ repo_pwd }}@git.dracodev.net/Dockers/portainer.git" dest: "{{ portainer_repo_dir }}" version: main update: yes force: yes # Installation initiale - name: "Exécuter le script d'initialisation Portainer" command: "bash ./init.sh" args: chdir: "{{ portainer_repo_dir }}" when: not portainer_update # Mise à jour - name: "Exécuter le script de mise à jour Portainer" command: "bash ./maj.sh" args: chdir: "{{ portainer_repo_dir }}" when: portainer_update # Vérification finale - name: "Vérifier que Portainer est en cours d'exécution" command: "docker ps --filter name=portainer --format {% raw %}'table {{.Names}}\t{{.Status}}\t{{.Ports}}'{% endraw %}" register: portainer_status changed_when: false - name: "Afficher le statut de Portainer" debug: msg: "{{ portainer_status.stdout_lines }}" - name: "Message de succès" debug: msg: | Portainer CE a été déployé avec succès ! Le script maj.sh a configuré automatiquement le firewall (UFW/Firewalld/iptables). Interface Web HTTPS : https://{{ ansible_default_ipv4.address }}:9443 Interface Web HTTP : http://{{ ansible_default_ipv4.address }}:9000 Edge Agent : {{ ansible_default_ipv4.address }}:8000