GNU/Linux >> Linux Esercitazione >  >> Linux

Nozioni di base su YAML che ogni ingegnere DevOps deve conoscere

YAML ha guadagnato molta popolarità negli ultimi anni quando è diventato parte di strumenti, tecnologie e processi DevOps cruciali come Ansible, Kubernetes, pipeline CI/CD e così via.

Abbiamo già trattato molti tutorial su Ansible e Kubernetes. Ho pensato di trattare gli elementi essenziali di YAML in modo che tu debba essere consapevole per un lavoro più fluido con la configurazione degli strumenti DevOps.

Cos'è YAML?

YAML sta per "YAML non è un linguaggio di markup" originariamente era l'acronimo di "Yet Another Markup Language". YAML è un linguaggio di "serializzazione dei dati" e fondamentalmente un formato di dati strutturati leggibile dall'uomo.

È progettato per essere letto e scrivere amichevole. La funzionalità di serializzazione degli oggetti di YAML si presenta come un'alternativa praticabile a JSON. YAML è un superset di JSON con l'uso dell'ambito basato sull'indentazione per denotare la struttura come Python.

Ecco un esempio di YAML di esempio:

--- 
 Student-ID: 314159
 First-Name: Linus
 Last-Name: Torvalds

Phone-numbers:
    - 281.555.7777
    - 832.676.8888
    - 937.996.9999

Addresses:
    - Street: 123 Main St.
    - City: Houston
    - State: Tx
---

Regole di base di YAML da ricordare sempre

Se non vuoi vedere errori ripetuti durante l'analisi del tuo file YAML, devi sempre tenere a mente quanto segue mentre lavori su YAML:

  • Le schede NON sono consentite in YAML. Dovresti usare lo spazio per il rientro.
  • Sebbene la quantità di spazio non abbia importanza fintanto che il rientro del nodo figlio è maggiore del genitore, è buona norma mantenere lo stesso numero di spazi.
  • Deve esserci spazio tra i diversi elementi di YAML (spiegato più avanti).
  • YAML fa distinzione tra maiuscole e minuscole.
  • Il file YAML dovrebbe terminare con estensioni come .yaml o .yml .
  • YAML consente la codifica UTF-8, UTF-16 e UTF-32.

Capiamo ora la sintassi YAML.

Elementi di un file YAML:sintassi di base

Un file YAML viene utilizzato per descrivere i dati. In un file YAML il contenuto riguarda una raccolta di coppie chiave-valore dove il valore può essere qualsiasi cosa, da una stringa a un albero.

Capiamolo con un esempio. Questo è un file manifest del servizio Kubernetes.

kind: Service
metadata:  
  name: web-app-svc
spec:  
  type: NodePort  
  ports:  
  - port: 8080         #service port    
    targetPort: 8080   #Pod Port    
    nodePort: 30012  #Node Port from the range - 30000-32767  
  selector:    
    app: web-app

È autospiegabile che si tratta di un insieme di elementi coppia chiave-valore:Name: Value .

Come puoi vedere dal file sopra, un file YAML è costituito da un numero di elementi diversi. Insieme, possono essere usati per descrivere un'ampia varietà di strutture.

1. Spazi o rientro

In YAML, rientri con spazi bianchi, non con tabulazioni. E DEVE esserci uno spazio tra gli elementi.

Specificazione corretta:

Kind:Service

Specificazione errata:

Kind:Service

Perché non c'è spazio dopo i due punti nell'istruzione precedente!

2. Commenti in YAML

I commenti possono essere definiti inserendo un hash davanti a un elemento '# '. I commenti possono essere inseriti all'inizio di una riga in qualsiasi punto della riga.

Se esamini il nostro file di configurazione YAML abbiamo tre commenti in linea come "#porta di servizio" ecc.

3. Scalare (valore-chiave)

Gli scalari sono le stringhe ei numeri che compongono i dati nella pagina. In parole povere sono le coppie chiave-valore.

kind: Service
metadata:  
  name: web-app-svc

4. Raccolte ed elenchi

Gli elementi o membri di elenco e raccolta sono le righe che iniziano allo stesso livello di rientro, iniziando con un trattino seguito da uno spazio.

- web-app-prod 
- prod-deployments 
- prom-monitored

È un elenco di base con ogni elemento dell'elenco posizionato in una riga separata con un trattino di apertura.

5. Raccolte nidificate

Se vuoi creare una sequenza nidificata con elementi e sottoelementi, puoi farlo inserendo un singolo spazio prima di ogni trattino negli elementi secondari.

- 
 - web-app-prod 
 - prod-deployments 
 - prom-monitored
-  
 - web-app-test 
 - staging-deployments 
 - not-monitored

6. Dizionari

I dizionari comprendono una key: value formato con contenuto rientrato.

ports:    
- port: 8080         #service port    
  targetPort: 8080   #Pod Port    
  nodePort: 30012  #Node Port from the range - 30000-32767

Puoi unire e confondere raccolte di elenchi e dizionari in questo modo:

ports:    
- port: 8080         #service port    
  targetPort: 8080   #Pod Port    
  nodePort:       
  - 30012       
  - 30013       
  - 30014

Questi sono concetti molto basilari di YAML ma essenziali per un ingegnere DevOps.

Non hai bisogno di un editor speciale per YAML. Il tuo editor di testo preferito dovrebbe già supportare YAML o utilizzare un plug-in, se necessario.

Ci sono molte cose che puoi approfondire e imparare. Per questo, puoi sempre fare riferimento alla documentazione ufficiale di YAML.

Vuoi essere un amministratore di sistema o un DevOps migliore? Diventa un membro di Linux Handbook oggi.


Linux
  1. 10 comandi che ogni utente Linux dovrebbe conoscere

  2. 3 hack utili che ogni utente Linux deve conoscere

  3. 7 comandi di rete Linux che ogni amministratore di sistema dovrebbe conoscere

  4. 17 comandi Linux che ogni amministratore di sistema dovrebbe conoscere

  5. 20 Comandi OpenSSL Esempi che devi conoscere

13 Scorciatoie del terminale Linux che ogni utente Power Linux deve conoscere

DevOps vs Software Engineer:qual è la differenza?

Principali responsabilità di un DevOps Engineer

Trucchi del terminale Linux che ogni appassionato di Linux deve conoscere!

I 50+ migliori comandi Linux che DEVI conoscere

I 20 migliori siti Web di giochi Linux che ogni giocatore deve conoscere