Prerequis : collection community.docker
La collection community.docker fournit les modules necessaires pour gerer Docker via Ansible.
ansible-galaxy collection install community.docker
Module docker_container
Le module docker_container permet de creer, demarrer, arreter et supprimer des conteneurs Docker.
- name: Lancer un conteneur Nginx
community.docker.docker_container:
name: web_server
image: nginx:latest
state: started
ports:
- "8080:80"
volumes:
- /data/html:/usr/share/nginx/html:ro
restart_policy: unless-stopped
env:
NGINX_HOST: "example.com"
Module docker_image
Construire et gerer des images Docker directement depuis Ansible :
- name: Construire une image depuis un Dockerfile
community.docker.docker_image:
name: mon-app
tag: "{{ version }}"
source: build
build:
path: /opt/mon-app
dockerfile: Dockerfile
push: false
- name: Tirer une image depuis un registre
community.docker.docker_image:
name: redis
tag: "7-alpine"
source: pull
Gestion des reseaux Docker
- name: Creer un reseau Docker
community.docker.docker_network:
name: app_network
driver: bridge
ipam_config:
- subnet: 172.20.0.0/16
gateway: 172.20.0.1
- name: Conteneur dans un reseau
community.docker.docker_container:
name: app
image: mon-app:latest
networks:
- name: app_network
ipv4_address: 172.20.0.10
Gestion des volumes
- name: Creer un volume Docker
community.docker.docker_volume:
name: db_data
driver: local
- name: Conteneur avec volume nomme
community.docker.docker_container:
name: postgres
image: postgres:15
volumes:
- db_data:/var/lib/postgresql/data
Best practice : Utilisez des variables Ansible pour les tags d'images afin de faciliter les mises a jour et les rollbacks.