Introducció
En aquest tema, explorarem com Ansible pot ser utilitzat per gestionar i automatitzar la configuració de contenidors Docker. Aprendrem a crear, gestionar i desplegar contenidors Docker utilitzant Playbooks d'Ansible. Aquest coneixement és essencial per a qualsevol professional de DevOps que vulgui integrar Ansible en el seu flux de treball de contenidors.
Objectius
- Entendre com Ansible pot interactuar amb Docker.
- Aprendre a utilitzar els mòduls d'Ansible per gestionar Docker.
- Crear Playbooks per desplegar i gestionar contenidors Docker.
Requisits Prèvis
- Coneixements bàsics d'Ansible.
- Coneixements bàsics de Docker.
- Un entorn amb Docker i Ansible instal·lats.
Mòduls d'Ansible per Docker
Ansible proporciona diversos mòduls per gestionar Docker. A continuació, es mostren alguns dels mòduls més utilitzats:
| Mòdul | Descripció |
|---|---|
docker_container |
Gestiona el cicle de vida dels contenidors Docker. |
docker_image |
Gestiona les imatges Docker. |
docker_network |
Gestiona les xarxes Docker. |
docker_volume |
Gestiona els volums Docker. |
Exemple Pràctic: Desplegant un Contenidor Docker
Pas 1: Crear un Fitxer d'Inventari
Primer, crearem un fitxer d'inventari per definir els hosts on desplegarem els contenidors Docker.
Pas 2: Escrivint el Playbook
A continuació, escriurem un Playbook per desplegar un contenidor Docker que executi una aplicació Nginx.
---
- name: Desplegar un contenidor Docker amb Nginx
hosts: docker_host
tasks:
- name: Assegurar-se que Docker està instal·lat
apt:
name: docker.io
state: present
become: yes
- name: Assegurar-se que Docker està en execució
service:
name: docker
state: started
enabled: yes
become: yes
- name: Descarregar la imatge de Nginx
docker_image:
name: nginx
source: pull
- name: Desplegar el contenidor de Nginx
docker_container:
name: nginx
image: nginx
state: started
ports:
- "80:80"Pas 3: Executar el Playbook
Per executar el Playbook, utilitzarem la comanda ansible-playbook.
Exercici Pràctic
Objectiu
Desplegar un contenidor Docker que executi una aplicació personalitzada.
Instruccions
- Crea un fitxer d'inventari per definir els hosts.
- Escriu un Playbook per:
- Instal·lar Docker.
- Descarregar una imatge Docker personalitzada (per exemple, una imatge de Python).
- Desplegar un contenidor que executi un script de Python.
- Executa el Playbook i verifica que el contenidor s'ha desplegat correctament.
Solució
---
- name: Desplegar un contenidor Docker amb una aplicació personalitzada
hosts: docker_host
tasks:
- name: Assegurar-se que Docker està instal·lat
apt:
name: docker.io
state: present
become: yes
- name: Assegurar-se que Docker està en execució
service:
name: docker
state: started
enabled: yes
become: yes
- name: Descarregar la imatge de Python
docker_image:
name: python
source: pull
- name: Desplegar el contenidor de Python
docker_container:
name: python_app
image: python
state: started
command: "python -m http.server"
ports:
- "8000:8000"Errors Comuns i Consells
- Error: "Permission denied": Assegura't d'executar les tasques que requereixen permisos d'administrador amb
become: yes. - Error: "Docker service not found": Verifica que Docker està instal·lat i en execució al host de destinació.
- Consell: Utilitza el mòdul
docker_imageper assegurar-te que la imatge necessària està disponible abans de desplegar el contenidor.
Conclusió
En aquest tema, hem après com utilitzar Ansible per gestionar contenidors Docker. Hem vist com instal·lar Docker, descarregar imatges i desplegar contenidors utilitzant Playbooks d'Ansible. Aquestes habilitats són fonamentals per a la gestió automatitzada de contenidors en entorns de producció.
En el següent tema, explorarem com Ansible pot ser utilitzat per gestionar Kubernetes, una altra eina essencial en l'ecosistema de DevOps.
Ansible: De Principiant a Avançat
Mòdul 1: Introducció a Ansible
Mòdul 2: Conceptes bàsics d'Ansible
Mòdul 3: Playbooks
- Introducció als Playbooks
- Escrivint el teu primer Playbook
- Estructura del Playbook
- Variables i Fets
- Condicionals i Bucles
Mòdul 4: Rols
Mòdul 5: Tècniques Avançades de Playbook
Mòdul 6: Ansible Galaxy
Mòdul 7: Ansible Tower
- Introducció a Ansible Tower
- Instal·lant Ansible Tower
- Utilitzant Ansible Tower
- Gestionant Projectes i Inventaris
