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