Creando tu primer playbook
Comencemos creando un simple playbook de Ansible que creará un directorio y un archivo en la máquina local. Esto te ayudará a entender la estructura básica de un playbook y cómo ejecutarlo.
Primero, creemos un nuevo archivo llamado first_playbook.yml
en el directorio /home/labex/project
:
nano /home/labex/project/first_playbook.yml
Este comando abre el editor de texto nano. Si no estás familiarizado con nano, no te preocupes; es un editor de texto sencillo. Puedes escribir directamente en él.
Ahora, agrega el siguiente contenido al archivo:
---
- name: My First Playbook
hosts: localhost
connection: local
tasks:
- name: Create a directory
file:
path: /home/labex/project/test_directory
state: directory
mode: "0755"
- name: Create a file
copy:
content: "Hello from Ansible!"
dest: /home/labex/project/test_directory/hello.txt
Desglosemos este playbook para entender cada parte:
- El
---
en la parte superior marca el inicio de un archivo YAML. YAML es el formato utilizado para los playbooks de Ansible.
name: My First Playbook
es un nombre descriptivo para esta ejecución (play). Te ayuda a identificar lo que hace este playbook.
hosts: localhost
especifica que este playbook se ejecutará en la máquina local. En un escenario del mundo real, podrías especificar hosts remotos aquí.
connection: local
le dice a Ansible que ejecute el playbook localmente en lugar de usar SSH. Esto es útil para pruebas y para tareas que deben realizarse en el nodo de control de Ansible mismo.
tasks:
va seguido de una lista de tareas a ejecutar. Cada tarea es una acción que quieres que Ansible realice.
- Cada tarea tiene un
name
para su descripción. Esto te ayuda a entender lo que hace cada tarea y facilita la resolución de problemas.
- Las tareas utilizan módulos de Ansible:
- El módulo
file
se utiliza para crear el directorio.
- El módulo
copy
se utiliza para crear un archivo con contenido específico.
No te preocupes si aún no entiendes todos los módulos. A medida que avances, aprenderás sobre muchos más módulos y sus usos.
Guarda y sale del editor. En nano, puedes hacer esto presionando Ctrl+X
, luego Y
, luego Enter
.
Ahora, ejecutemos este playbook. En tu terminal, escribe:
ansible-playbook /home/labex/project/first_playbook.yml
Este comando le dice a Ansible que ejecute el playbook que acabamos de crear. Deberías ver una salida similar a esta:
PLAY [My First Playbook] ******************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Create a directory] ******************************************************
changed: [localhost]
TASK [Create a file] ***********************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Esta salida muestra que Ansible ejecutó nuestras tareas con éxito. El estado "changed" indica que Ansible hizo cambios en el sistema (creó un directorio y un archivo).
Si quieres verificar los resultados manualmente, puedes usar estos comandos:
ls -l /home/labex/project/test_directory
cat /home/labex/project/test_directory/hello.txt
El primer comando debe mostrar el directorio que creamos, y el segundo debe mostrar el contenido del archivo que creamos.