Curso Ansible: Generar ficheros YAML
Seguimos ampliando el curso de Ansible…
Hoy vamos a mostraros como podemos generar los ficheros YAML o YML, que son los que nos permitirán ejecutar y definir las configuraciones que queremos trabajar.
Los ficheros YAML (YAML Ain’t Markup Language) son fundamentales en Ansible para definir playbooks, roles, variables, inventarios y más. Os explico cómo crear un fichero YAML y os voy a proporcionar una tabla con las opciones más comunes que podemos utilizar, junto con su explicación.
¿Qué es YAML?
YAML es un formato de serialización de datos legible para los humanos que se usa comúnmente para archivos de configuración. Es simple de leer y escribir, lo que lo hace ideal para la gestión de configuraciones en Ansible.
Creación de un Fichero YAML
Para crear un fichero YAML en Ansible:
- Abre tu editor de texto favorito: Puedes usar editores como vim, nano, VSCode, Sublime Text, etc.
- Crea un nuevo archivo: Asegúrate de que el nombre del archivo termine con .yml o .yaml.
Aquí te explico algunas reglas importantes sobre la indentación en YAML:
Reglas de Indentación en YAML
La indentación es el espacio en blanco al comienzo de una línea de texto en un archivo. En muchos lenguajes de programación y de marcado, incluido YAML, la indentación se utiliza para definir la estructura y la jerarquía de los bloques de código o datos. En otras palabras, la indentación determina qué elementos están contenidos dentro de otros elementos, lo que es fundamental para la correcta interpretación del archivo.
- Consistencia en la indentación: Es fundamental que la indentación sea consistente en todo el archivo. Puedes usar espacios o tabuladores, pero nunca mezcles ambos en el mismo archivo.
- Cantidad de espacios: La cantidad de espacios es flexible, pero se recomienda usar dos espacios para cada nivel de indentación para mantener la legibilidad.
- No usar Tabuladores: Aunque técnicamente es posible usar tabuladores, la práctica recomendada es utilizar espacios, ya que los tabuladores pueden causar problemas de interpretación en diferentes herramientas o editores.
Ejemplo Básico de un Playbook en YAML
Aquí hay un ejemplo básico de un playbook en YAML:
1 2 3 4 5 6 7 8 |
--- - name: Ejemplo de Playbook hosts: localhost tasks: - name: Crear un fichero file: path: /tmp/archivo.txt state: touch |
¿Por Qué Se Usa “—“?
La línea — se usa al comienzo de un archivo YAML para indicar el inicio de un documento YAML. Aunque no es estrictamente necesario en todos los casos, es una práctica recomendada especialmente en archivos más largos o cuando hay múltiples documentos YAML en un solo archivo. Ayuda a los analizadores (parsers) a reconocer el inicio de un documento, lo que mejora la legibilidad y organización del archivo.
Tabla de opciones comunes en Ansible YAML
A continuación, se presenta una tabla con las opciones más comunes que puedes introducir en un fichero YAML para Ansible, junto con su explicación:
Explicación de un Playbook Completo
Vamos a desglosar un playbook completo usando las opciones anteriores:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
--- - name: Despliegue de Aplicación Web hosts: webservers become: yes vars: http_port: 80 max_clients: 200 tasks: - name: Instalar Apache apt: name: apache2 state: present when: ansible_os_family == "Debian" notify: Reiniciar Apache - name: Crear directorio para la aplicación file: path: /var/www/myapp state: directory - name: Subir archivo de configuración template: src: templates/httpd.conf.j2 dest: /etc/apache2/sites-available/000-default.conf handlers: - name: Reiniciar Apache service: name: apache2 state: restarted |
Pasos para Crear y Ejecutar el Playbook
- Crear el archivo YAML: Guarda el contenido del playbook en un archivo, por ejemplo, deploy_web.yml.
- Ejecutar el playbook: Usa el comando ansible-playbook para ejecutar tu playbook.
1 |
ansible-playbook deploy_web.yml |
ENTRADAS RELACIONADAS CURSO ANSIBLE
- Curso Ansible: Qué es y para qué sirve
- Curso Ansible: Instalación, configuración inicial y ejemplo práctico básico
- Curso Ansible: Puertos de comunicación necesarios
- Curso Ansible: Playbooks conceptos básicos
- Curso Ansible: Manejo de Inventarios
- Curso Ansible: Manejo de Variables
- Curso Ansible: definición y uso de Roles
- Curso Ansible: qué son los Handlers
- Curso Ansible: Condicionales y bucles
- Curso Ansible: Gestión de secretos y credenciales con Ansible Vault
- Curso Ansible: Uso de roles de la comunidad con Ansible Galaxy
- Curso Ansible: Despliegue de aplicaciones en contenedores con Ansible
- Curso Ansible: Integración de Ansible con CI/CD pipelines
- Curso Ansible: Generar ficheros YAML
- Curso Ansible: Integración de Ansible con Terraform para gestionar Proxmox
- Curso Ansible: Provisioners de Ansible en Terraform
- Curso Ansible: Hecho o Fact
- Curso Ansible: Optimización y buenas prácticas
OTRAS ENTRADAS RELACIONADAS ANSIBLE
- Ansible: Conceptos básicos
- Ansible: Comandos básicos
- Instalar Ansible en Centos 7
- Ansible: Gestión básica máquinas virtuales Proxmox
- MacOS: Instalar Podman y Ansible
- Docker Swarm: Instalar Ansible AWX
- Ansible: Validar ficheros YAML
- Ansible: Instalar SQL Server 2019 en Linux
- Ansible: Crear página web WordPress
- Ansible: Instalación servidores web
- Ansible: Gestión de máquina Windows
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?