Herramientas de usuario

Herramientas del sitio


informatica:ciberseguridad:cursos:curso_ansible_automatizacion_it:conceptos_avanzados

¡Esta es una revisión vieja del documento!


Ansible: Conceptos avanzados

Sección perteneciente al curso Ansible Automatización IT

¿Qué es YAML y por qué es importante conocerlo?

YAML es un formato de serialización de datos , legible por humanos, que está inspirado en lenguajes como XML.

YAML es un superconjunto del formato JSON, que permite añadir estructuras más complejas e incluso comentarios.

En el mundo Ansible, todos los playbooks están escritos en YAML.

Reglas generales:

  • Extensión .yaml (recomendada) o .yml
  • Las tabulaciones no están permitidas, solo los espacios.
  • Es necesario identar (sangrar) el código uno o más espacios.
  • Todas las claves/propiedades son case-sensitive (se distingue mayúsculas de minúsculas).
  • Los comentarios empiezan con un símbolo #.

Ejemplo de un playbook en YAML:

hosts: webservers

sudo: yes

vars:
  app_name: PleaseDeployMe
  repo_url: https://github.com/username/reponame.git
  repo_remote: origin
  repo_version: master
  webapps_dir: /deployed
  virtualenv_root: /deployed/PleaseDeployMe/mac
  
  tasks:
    - name: git pull project
      git: repo={{repo_url}} dest={{webapps_dir}}/{{app_name}} version=master

Tipos de datos

Cadenas de texto

---
foo: Esta es una cadena de texto

Los tres guiones indican el inicio del fichero.

Para meter caracteres especiales, hay que meterlos entre comillas:

---
foo: Esta es una cadena de texto "\n" estoy en una línea nueva.

Booleanos

True es lo mismo que On; False es lo mismo que Off.

---
foo: True
bar: False
light: On
TV: Off

Números

Soporta números decimales, hexadecimales…

---
foo: 12345
bar: 0x12d4
plop: 023332

Array / listas

---
items: [1, 2, 3, 4, 5]
names: ["one", "two", "three", "four", "five"]

También se podría escribir en el siguiente formato:

items:
  - 1
  - 2
  - 3
  - 4
  - 5

Diccionarios

---
foo: {thing1: huey, thing2: louie, thing3: dewey}

Los diccionarios se pueden anidar con otros elementos:

---
foo: 
  bar:
    - bar
    - rgb
    - plob

El diccionario bar tiene dentro una lista de 3 elementos.

Variables

Permiten almacenar y reusar información. Las variables se procesan en orden, de mayor a menor preferencia:

  1. Variables por línea de comandos
  2. Variables en tareas
  3. Variables en roles y secciones include
  4. Variables creadas con la directiva register
  5. Variables en los inventarios
  6. Variables en las plays
  7. Host facts
  8. Variables por defecto en los roles

En la documentación oficial de Ansible se habla hasta de 15 niveles de prioridad.

Reglas a la hora de definir variables en Ansible:

  • Deben comenzar con letra
  • Pueden contener letras, números y guiones bajos.

Tareas, Plays y Playbooks I

Tareas, Plays y Playbooks II

Qué son los handlers y para qué se usan

Condicionales

Tags

Templates I

Templates II

Bloques y gestión de errores

Bucles

Qué son los Roles en Ansible

Creando nuestro primer Rol

Recursos

informatica/ciberseguridad/cursos/curso_ansible_automatizacion_it/conceptos_avanzados.1683560521.txt.gz · Última modificación: por tempwin