Ansible - Conceptos básicos de YAML

Ansible usa la sintaxis YAML para expresar los libros de jugadas de Ansible. Este capítulo proporciona una descripción general de YAML. Ansible usa YAML porque es muy fácil de entender, leer y escribir para los humanos en comparación con otros formatos de datos como XML y JSON.

Cada YAML opcionalmente, el archivo comienza con "---" y termina con "...".

Entendiendo YAML

En esta sección, aprenderemos las diferentes formas en que se representan los datos YAML.

par clave-valor

YAML utiliza un par clave-valor simple para representar los datos. El diccionario está representado en el par clave: valor.

Note - Debe haber un espacio entre: y valor.

Ejemplo: un registro de estudiante

--- #Optional YAML start syntax 
james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
… #Optional YAML end syntax

Abreviatura

También puede utilizar abreviaturas para representar diccionarios.

Ejemplo

James: {name: james john, rollNo: 34, div: B, sex: male}

Lista de representación

También podemos representar List en YAML. Cada elemento (miembro) de la lista debe escribirse en una nueva línea con la misma sangría comenzando con "-" (- y espacio).

Ejemplo

---
countries:  
   - America 
   - China 
   - Canada 
   - Iceland 
…

Abreviatura

También puede utilizar abreviaturas para representar listas.

Ejemplo

Countries: [‘America’, ‘China’, ‘Canada’, ‘Iceland’]

Lista dentro de diccionarios

Podemos usar list dentro de diccionarios, es decir, el valor de la clave es list.

Ejemplo

---  
james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 
…

Lista de diccionarios

También podemos hacer lista de diccionarios.

Ejemplo

---  
- james: 
   name: james john 
   rollNo: 34 
      div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 

- robert: 
      name: robert richardson 
      rollNo: 53 
      div: B 
      sex: male 
   likes: 
      - biology 
      - chemistry 
…

YAML usa "|" para incluir nuevas líneas mientras muestra varias líneas y ">" para suprimir nuevas líneas mientras muestra varias líneas. Debido a esto, podemos leer y editar líneas grandes. En ambos casos se ignorará la intención.

También podemos representar BooleanValores (verdadero / falso) en YAML. dóndeboolean los valores pueden no distinguir entre mayúsculas y minúsculas.

Ejemplo

---  
- james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 
   
   result: 
      maths: 87 
      chemistry: 45 
      biology: 56 
      physics: 70 
      english: 80 
   
   passed: TRUE 
   
   messageIncludeNewLines: | 
      Congratulation!! 
      You passed with 79% 
   
   messageExcludeNewLines: > 
      Congratulation!! 
      You passed with 79%

Algunas palabras comunes relacionadas con Ansible.

Service/Server - Un proceso en la máquina que presta el servicio.

Machine - Un servidor físico, vm (máquina virtual) o un contenedor.

Target machine - Una máquina que estamos a punto de configurar con Ansible.

Task - Una acción (ejecutar esto, eliminar aquello), etc. gestionado por Ansible.

Playbook - El archivo yml donde se escriben los comandos de Ansible y se ejecuta yml en una máquina.