Comprensión de la Configuración y los Módulos de Ansible
Ahora que tenemos Ansible instalado y funcionando, exploremos su configuración y el concepto de módulos.
Configuración de Ansible
Ansible utiliza archivos de configuración para controlar su comportamiento. El archivo de configuración principal es ansible.cfg, que puede existir en varias ubicaciones. Examinemos el archivo de configuración predeterminado:
ls -la /etc/ansible/
Debería ver la estructura de directorio predeterminada de Ansible:
total 20
drwxr-xr-x 2 root root 4096 Aug 30 12:00 .
drwxr-xr-x 85 root root 4096 Aug 30 12:00 ..
-rw-r--r-- 1 root root 8669 Aug 30 12:00 ansible.cfg
-rw-r--r-- 1 root root 1021 Aug 30 12:00 hosts
Echemos un vistazo al archivo hosts, que es el archivo de inventario predeterminado:
cat /etc/ansible/hosts
El archivo de inventario contiene una lista de hosts que Ansible puede administrar. De forma predeterminada, contiene ejemplos que están comentados.
Creando una Configuración Personalizada
Creemos nuestro propio archivo de configuración de Ansible en nuestro directorio de proyecto. En el WebIDE, cree un nuevo archivo llamado ansible.cfg en el directorio ~/project/ansible-test con el siguiente contenido:
[defaults]
inventory = ./inventory
host_key_checking = False
stdout_callback = yaml
Ahora, creemos un archivo de inventario simple. En el WebIDE, cree un nuevo archivo llamado inventory en el directorio ~/project/ansible-test con el siguiente contenido:
[local]
localhost ansible_connection=local
Explorando los Módulos de Ansible
Los módulos de Ansible son unidades de código reutilizables que realizan tareas específicas. Exploremos algunos de los módulos disponibles:
ansible-doc -l | wc -l
Este comando enumera todos los módulos disponibles y los cuenta. Debería ver un número grande, típicamente más de 1000 módulos.
Veamos la documentación de un módulo específico, como el módulo file que usamos en nuestro playbook:
ansible-doc file
Puede presionar q para salir del visor de documentación.
Creando un Playbook Más Complejo
Ahora, creemos un playbook más avanzado que demuestre algunos módulos más de Ansible. En el WebIDE, cree un nuevo archivo llamado modules-demo.yml en el directorio ~/project/ansible-test con el siguiente contenido:
---
- name: Ansible Modules Demo
hosts: localhost
connection: local
gather_facts: yes
tasks:
- name: Display system information
debug:
msg: "System: {{ ansible_distribution }} {{ ansible_distribution_version }}"
- name: Create a directory
file:
path: /tmp/ansible-demo
state: directory
mode: "0755"
- name: Copy a file
copy:
content: "Created by Ansible modules demo playbook\n"
dest: /tmp/ansible-demo/info.txt
mode: "0644"
- name: Gather information about a file
stat:
path: /tmp/ansible-demo/info.txt
register: file_info
- name: Show file information
debug:
msg: "File created at {{ file_info.stat.mtime }}"
Ejecutemos este playbook:
cd ~/project/ansible-test
ansible-playbook modules-demo.yml
El playbook hace lo siguiente:
- Muestra información sobre su sistema
- Crea un directorio en
/tmp/ansible-demo
- Crea un archivo con contenido personalizado
- Recopila información sobre el archivo
- Muestra la hora de modificación del archivo
Marquemos este paso como completo para nuestro script de verificación:
touch /tmp/ansible_modules_explored
Ahora ha aprendido sobre la configuración de Ansible, los archivos de inventario y ha explorado varios módulos. Estos son componentes esenciales para trabajar con Ansible de manera efectiva.