Neah-Enkun/ansible/playbooks/1_docker.yml

110 lines
2.7 KiB
YAML

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