Neah-Enkun/ansible/playbooks/2_portainer.yml

66 lines
1.8 KiB
YAML

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