GNU/Linux >> Tutoriels Linux >  >> Linux

Les bases de YAML que tout ingénieur DevOps doit connaître

YAML a gagné en popularité au cours des dernières années, car il est devenu une partie intégrante des outils, technologies et processus DevOps cruciaux tels qu'Ansible, Kubernetes, les pipelines CI/CD, etc.

Nous avons déjà couvert de nombreux tutoriels sur Ansible et Kubernetes. J'ai pensé à couvrir l'essentiel de YAML afin que vous deviez être conscient pour un travail plus fluide avec la configuration de vos outils DevOps.

Qu'est-ce que YAML ?

YAML signifie "YAML n'est pas un langage de balisage" était à l'origine un acronyme pour 'Yet Another Markup Language'. YAML est un langage de "sérialisation de données" et essentiellement un format de données structuré lisible par l'homme.

Il est conçu pour être lu et écrit facilement. La fonctionnalité de sérialisation d'objets de YAML se présente comme une alternative pratique à JSON. YAML est un sur-ensemble de JSON avec l'utilisation d'une portée basée sur l'indentation pour désigner la structure comme Python.

Voici un exemple d'exemple 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
---

Règles de base de YAML dont vous devez toujours vous souvenir

Si vous ne voulez pas voir des erreurs répétées lors de l'analyse de votre fichier YAML, vous devez toujours garder à l'esprit ce qui suit lorsque vous travaillez sur YAML :

  • Les onglets ne sont PAS autorisés dans YAML. Vous devez utiliser l'espace pour l'indentation.
  • Bien que la quantité d'espace n'ait pas d'importance tant que l'indentation du nœud enfant est supérieure à celle du parent, il est recommandé de conserver le même nombre d'espaces.
  • Il doit y avoir un espace entre les différents éléments de YAML (expliqué plus loin).
  • YAML est sensible à la casse.
  • Le fichier YAML doit se terminer par des extensions telles que .yaml ou .yml .
  • YAML permet l'encodage UTF-8, UTF-16 et UTF-32.

Comprenons maintenant la syntaxe YAML.

Éléments d'un fichier YAML :syntaxe de base

Un fichier YAML est utilisé pour décrire les données. Dans un fichier YAML, le contenu concerne une collection de paires clé-valeur où la valeur peut être n'importe quoi allant d'une chaîne à un arbre.

Comprenons-le par un exemple. Il s'agit d'un fichier manifeste de service 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

Il s'explique d'eux-mêmes qu'il s'agit d'un ensemble d'éléments de paires de valeurs clés :Name: Value .

Comme vous pouvez le voir dans le fichier ci-dessus, un fichier YAML est constitué d'un certain nombre d'éléments différents. Ensemble, ils peuvent être utilisés pour décrire une grande variété de structures.

1. Espaces ou indentation

Dans YAML, vous indentez avec des espaces blancs, pas des tabulations. Et il DOIT y avoir un espace entre les éléments.

Spécification correcte :

Kind:Service

Spécification incorrecte :

Kind:Service

Parce qu'il n'y a pas d'espace après les deux-points dans la déclaration ci-dessus !

2. Commentaires en YAML

Les commentaires peuvent être définis en plaçant un dièse devant un élément '# '. Les commentaires peuvent être faits au début d'une ligne ou n'importe où dans la ligne.

Si vous parcourez notre fichier de configuration YAML, nous avons trois commentaires en ligne tels que "#service port", etc.

3. Scalaire (valeur-clé)

Les scalaires sont les chaînes et les nombres qui composent les données sur la page. En termes simples, ce sont les paires clé-valeur.

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

4. Collections et listes

Les éléments ou membres de liste et de collection sont les lignes qui commencent au même niveau d'indentation, commençant par un tiret suivi d'un espace.

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

Il s'agit d'une liste de base dans laquelle chaque élément de la liste est placé sur sa propre ligne avec un tiret d'ouverture.

5. Collections imbriquées

Si vous souhaitez créer une séquence imbriquée avec des éléments et des sous-éléments, vous pouvez le faire en plaçant un seul espace avant chaque tiret dans les sous-éléments.

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

6. Dictionnaires

Les dictionnaires comportent une key: value format avec le contenu en retrait.

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

Vous pouvez fusionner et mélanger des collections de listes et de dictionnaires comme ceci :

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

Ce sont des concepts très basiques de YAML mais essentiels pour un ingénieur DevOps.

Vous n'avez pas besoin d'éditeur spécial pour YAML. Votre éditeur de texte préféré devrait déjà prendre en charge YAML ou utiliser un plugin si nécessaire.

Il y a beaucoup de choses que vous pouvez approfondir et apprendre. Pour cela, vous pouvez toujours vous référer à la documentation officielle de YAML.

Vous voulez être un meilleur administrateur système ou DevOps ? Devenez membre du Manuel Linux dès aujourd'hui.


Linux
  1. 10 commandes que tout utilisateur de Linux devrait connaître

  2. 7 commandes réseau Linux que chaque administrateur système devrait connaître

  3. 17 commandes Linux que tout administrateur système devrait connaître

  4. 20 exemples de commandes OpenSSL que vous devez connaître

  5. Redhat vs Ubuntu :15 faits fondamentaux que vous devez savoir

13 raccourcis de terminal Linux que chaque utilisateur puissant de Linux doit connaître

DevOps vs ingénieur logiciel :quelle est la différence ?

Principales responsabilités d'un ingénieur DevOps

Astuces pour les terminaux Linux que tous les passionnés de Linux doivent connaître !

Top 50+ des commandes Linux que vous DEVEZ connaître

Les 20 meilleurs sites Web de jeux Linux que tout joueur doit connaître