GNU/Linux >> Znalost Linux >  >> Linux

Základy YAML musí znát každý inženýr DevOps

YAML si za posledních několik let získal velkou oblibu, protože se stal součástí klíčových nástrojů, technologií a procesů DevOps, jako jsou Ansible, Kubernetes, CI/CD potrubí a tak dále.

Už jsme probrali spoustu výukových programů na Ansible a Kubernetes. Myslel jsem na pokrytí základů YAML, takže si musíte být vědomi pro hladší práci s konfigurací nástrojů DevOps.

Co je YAML?

YAML znamená „YAML Ain't Markup Language“ původně to byla zkratka pro 'Yet Another Markup Language'. YAML je jazyk pro „serializaci dat“ a v podstatě lidsky čitelný formát strukturovaných dat.

Je navržen tak, aby byl přátelský ke čtení a psaní. Funkce objektové serializace YAML se prezentuje jako praktická alternativa k JSON. YAML je nadmnožina JSON s použitím rozsahu založeného na odsazení k označení struktury jako Python.

Zde je ukázkový příklad YAML:

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

Základní pravidla YAML, která byste si měli vždy pamatovat

Pokud nechcete, aby se při analýze vašeho YAML souboru opakovaly chyby, musíte mít při práci na YAML vždy na paměti následující:

  • V YAML NEJSOU povoleny karty. Měli byste použít prostor pro odsazení.
  • Přestože na velikosti prostoru nezáleží, pokud je odsazení podřízeného uzlu větší než odsazení nadřazeného uzlu, je dobrým zvykem zachovat stejný počet mezer.
  • Mezi různými prvky YAML musí být mezera (vysvětleno později).
  • YAML rozlišuje velká a malá písmena.
  • Soubor YAML by měl končit příponami jako .yaml nebo .yml .
  • YAML umožňuje kódování UTF-8, UTF-16 a UTF-32.

Pojďme nyní pochopit syntaxi YAML.

Prvky souboru YAML:Základní syntaxe

K popisu dat se používá soubor YAML. V souboru YAML je obsah celý o sbírce párů klíč–hodnota kde hodnotou může být cokoliv od řetězce po strom.

Pojďme to pochopit na příkladu. Toto je soubor manifestu služby 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

Je samozřejmé, že se jedná o sadu prvků páru klíč hodnota:Name: Value .

Jak můžete vidět z výše uvedeného souboru, soubor YAML se skládá z řady různých prvků. Společně je lze použít k popisu široké škály struktur.

1. Mezery nebo odsazení

V YAML odsazujete mezerami, nikoli tabulátory. A mezi prvky MUSÍ být mezera.

Správná specifikace:

Kind: Service

Nesprávná specifikace:

Kind:Service

Protože ve výše uvedeném příkazu není za dvojtečkou mezera!

2. Komentáře v YAML

Komentáře lze definovat umístěním hash před položku '# '. Komentáře lze vkládat na začátek řádku kdekoli v řádku.

Pokud si projdete náš konfigurační soubor YAML, máme tři komentáře jako „#service port“ atd.

3. Skalární (pár klíč–hodnota)

Skaláry jsou řetězce a čísla, které tvoří data na stránce. Jednoduše řečeno, jsou to páry klíčových hodnot.

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

4. Sbírky a seznamy

Prvky nebo členové seznamu a kolekce jsou řádky, které začínají na stejné úrovni odsazení, začínají pomlčkou a za ní mezerou.

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

Jedná se o základní seznam s každou položkou v seznamu umístěnou na vlastním řádku s úvodní pomlčkou.

5. Vnořené sbírky

Pokud chcete vytvořit vnořenou sekvenci s položkami a podpoložkami, můžete tak učinit umístěním jedné mezery před každou pomlčku v podpoložkách.

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

6. Slovníky

Slovníky obsahují key: value formát s odsazeným obsahem.

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

Kolekce seznamů a slovníků můžete slučovat a míchat takto:

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

Toto jsou velmi základní koncepty YAML, ale nezbytné pro inženýra DevOps.

Pro YAML nepotřebujete speciální editor. Váš oblíbený textový editor by již měl podporovat YAML nebo v případě potřeby použít plugin.

Existuje mnoho věcí, které můžete prozkoumat a naučit se. Za tímto účelem se můžete vždy obrátit na oficiální dokumentaci YAML.

Chcete být lepším sysadminem nebo DevOps? Staňte se členem Linux Handbook ještě dnes.


Linux
  1. 10 příkazů, které by měl znát každý uživatel Linuxu

  2. 3 užitečné hacky, které musí znát každý uživatel Linuxu

  3. 7 síťových příkazů Linuxu, které by měl znát každý správce systému

  1. 17 Linuxových příkazů by měl znát každý správce systému

  2. 20 Příkazy OpenSSL Příklady, které musíte znát

  3. Redhat vs Ubuntu:15 základních faktů, které musíte vědět

  1. 12 Užitečné použití příkazového řádku PHP Každý uživatel Linuxu musí znát

  2. 34 základních příkazů Linuxu, které by měl znát každý uživatel

  3. Užitečné zkratky terminálu Linux, které musí znát každý uživatel Power Linuxu