homelab_automation/ansible/playbooks/install_container_portainer.yml
Bruno Charest 8affa0f8b7
Some checks failed
Tests / Backend Tests (Python) (3.10) (push) Has been cancelled
Tests / Backend Tests (Python) (3.11) (push) Has been cancelled
Tests / Backend Tests (Python) (3.12) (push) Has been cancelled
Tests / Frontend Tests (JS) (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
Tests / All Tests Passed (push) Has been cancelled
feat: Implement container customization and add Portainer installation/removal playbooks.
2025-12-27 11:02:24 -05:00

67 lines
2.2 KiB
YAML

---
# 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