Ansible - YAML Basics

O Ansible usa a sintaxe YAML para expressar os manuais do Ansible. Este capítulo fornece uma visão geral do YAML. O Ansible usa YAML porque é muito fácil para humanos entender, ler e escrever quando comparado a outros formatos de dados como XML e JSON.

Cada YAML arquivo opcionalmente começa com “---” e termina com “...”.

Compreendendo YAML

Nesta seção, aprenderemos as diferentes maneiras em que os dados YAML são representados.

par de valores-chave

YAML usa um par de valores-chave simples para representar os dados. O dicionário é representado no par chave: valor.

Note - Deve haver espaço entre: e valor.

Exemplo: um registro do aluno

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

Abreviação

Você também pode usar abreviações para representar dicionários.

Exemplo

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

Lista Representante

Também podemos representar a Lista em YAML. Cada elemento (membro) da lista deve ser escrito em uma nova linha com o mesmo recuo começando com “-“ (- e espaço).

Exemplo

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

Abreviação

Você também pode usar abreviações para representar listas.

Exemplo

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

Listar dentro de dicionários

Podemos usar lista dentro de dicionários, ou seja, o valor da chave é lista.

Exemplo

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

Lista de Dicionários

Também podemos fazer lista de dicionários.

Exemplo

---  
- 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 novas linhas ao mostrar várias linhas e “>” para suprimir novas linhas ao mostrar várias linhas. Devido a isso, podemos ler e editar linhas grandes. Em ambos os casos, a intentação será ignorada.

Nós também podemos representar BooleanValores (verdadeiro / falso) em YAML. Ondeboolean os valores podem não fazer distinção entre maiúsculas e minúsculas.

Exemplo

---  
- 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%

Algumas palavras comuns relacionadas a Ansible.

Service/Server - Um processo na máquina que fornece o serviço.

Machine - Um servidor físico, vm (máquina virtual) ou um contêiner.

Target machine - Uma máquina que estamos prestes a configurar com Ansible.

Task - Uma ação (execute isto, exclua aquilo) etc gerenciado por Ansible.

Playbook - O arquivo yml onde os comandos Ansible são escritos e o yml é executado em uma máquina.