Ansible - Fondamenti di YAML

Ansible utilizza la sintassi YAML per esprimere i playbook Ansible. Questo capitolo fornisce una panoramica di YAML. Ansible utilizza YAML perché è molto facile per gli esseri umani capire, leggere e scrivere rispetto ad altri formati di dati come XML e JSON.

Ogni YAML file opzionalmente inizia con "---" e finisce con "...".

Capire YAML

In questa sezione impareremo i diversi modi in cui vengono rappresentati i dati YAML.

coppia chiave-valore

YAML utilizza una semplice coppia chiave-valore per rappresentare i dati. Il dizionario è rappresentato nella coppia chiave: valore.

Note - Dovrebbe esserci uno spazio tra: e value.

Esempio: un record dello studente

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

Abbreviazione

È inoltre possibile utilizzare l'abbreviazione per rappresentare i dizionari.

Esempio

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

Elenco rappresentativo

Possiamo anche rappresentare List in YAML. Ogni elemento (membro) della lista dovrebbe essere scritto in una nuova riga con lo stesso rientro che inizia con "-" (- e spazio).

Esempio

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

Abbreviazione

È inoltre possibile utilizzare l'abbreviazione per rappresentare gli elenchi.

Esempio

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

Elenco all'interno dei dizionari

Possiamo usare list all'interno dei dizionari, cioè il valore della chiave è list.

Esempio

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

Elenco dei dizionari

Possiamo anche fare un elenco di dizionari.

Esempio

---  
- 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 utilizza "|" per includere le nuove righe durante la visualizzazione di più righe e ">" per eliminare le nuove righe durante la visualizzazione di più righe. Per questo motivo possiamo leggere e modificare righe grandi. In entrambi i casi si ignorerà l'intenzione.

Possiamo anche rappresentare BooleanValori (vero / falso) in YAML. doveboolean i valori possono essere case insensitive.

Esempio

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

Alcune parole comuni relative ad Ansible.

Service/Server - Un processo sulla macchina che fornisce il servizio.

Machine - Un server fisico, una vm (macchina virtuale) o un contenitore.

Target machine - Una macchina che stiamo per configurare con Ansible.

Task - Un'azione (esegui questo, elimina quello) ecc. Gestito da Ansible.

Playbook - Il file yml in cui vengono scritti i comandi Ansible e yml viene eseguito su una macchina.