GNU/Linux >> Tutoriales Linux >  >> Linux

Conceptos básicos de YAML que todo ingeniero de DevOps debe saber

YAML ha ganado mucha popularidad en los últimos años, ya que se convirtió en parte de herramientas, tecnologías y procesos cruciales de DevOps, como Ansible, Kubernetes, canalizaciones de CI/CD, etc.

Ya hemos cubierto muchos tutoriales sobre Ansible y Kubernetes. Pensé en cubrir los aspectos esenciales de YAML, por lo que debe tener en cuenta para un trabajo más fluido con la configuración de sus herramientas DevOps.

¿Qué es YAML?

YAML significa "YAML no es lenguaje de marcas" originalmente era un acrónimo de 'Yet Another Markup Language'. YAML es un lenguaje de "serialización de datos" y básicamente un formato de datos estructurados legibles por humanos.

Está diseñado para ser fácil de leer y escribir. La función de serialización de objetos de YAML se presenta como una alternativa viable a JSON. YAML es un superconjunto de JSON con el uso de alcance basado en sangría para denotar la estructura como Python.

Aquí hay un ejemplo de 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
---

Reglas básicas de YAML que siempre debes recordar

Si no desea ver errores repetidos mientras analiza su archivo YAML, siempre debe tener en cuenta lo siguiente mientras trabaja en YAML:

  • Las pestañas NO están permitidas en YAML. Debe usar espacio para la sangría.
  • Aunque la cantidad de espacio no importa siempre que la sangría del nodo secundario sea mayor que la del padre, es una buena práctica mantener la misma cantidad de espacios.
  • Debe haber espacio entre los diferentes elementos de YAML (se explica más adelante).
  • YAML distingue entre mayúsculas y minúsculas.
  • El archivo YAML debe terminar con extensiones como .yaml o .yml .
  • YAML permite la codificación UTF-8, UTF-16 y UTF-32.

Entendamos ahora la sintaxis de YAML.

Elementos de un archivo YAML:sintaxis básica

Un archivo YAML se utiliza para describir datos. En un archivo YAML, el contenido se trata de una colección de pares clave-valor donde el valor puede ser cualquier cosa, desde una cadena hasta un árbol.

Entendámoslo con un ejemplo. Este es un archivo de manifiesto de servicio de 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

Se explica por sí mismo que es un conjunto de elementos de pares de valores clave:Name: Value .

Como puede ver en el archivo anterior, un archivo YAML se construye a partir de varios elementos diferentes. Juntos, se pueden usar para describir una amplia variedad de estructuras.

1. Espacios o sangría

En YAML, se sangra con espacios en blanco, no con tabulaciones. Y DEBE haber un espacio entre los elementos.

Especificación correcta:

Kind:Service

Especificación incorrecta:

Kind:Service

¡Porque no hay espacio después de los dos puntos en la declaración anterior!

2. Comentarios en YAML

Los comentarios se pueden definir colocando un hash delante de un elemento '# '. Los comentarios se pueden hacer al comienzo de una línea o en cualquier lugar de la línea.

Si revisa nuestro archivo de configuración YAML, tenemos tres comentarios en línea como "#puerto de servicio", etc.

3. Escalar (clave-valor)

Los escalares son las cadenas y los números que componen los datos de la página. En términos simples, son los pares de valores clave.

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

4. Colecciones y listas

Los elementos o miembros de lista y colección son las líneas que comienzan en el mismo nivel de sangría, comenzando con un guión seguido de un espacio.

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

Es una lista básica con cada elemento de la lista colocado en su propia línea con un guión de apertura.

5. Colecciones anidadas

Si desea crear una secuencia anidada con elementos y subelementos, puede hacerlo colocando un solo espacio antes de cada guión en los subelementos.

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

6. Diccionarios

Los diccionarios comprenden una key: value formato con contenido sangrado.

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

Puede fusionar y mezclar colecciones de listas y diccionarios como este:

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

Estos son conceptos muy básicos de YAML pero esenciales para un ingeniero DevOps.

No necesitas un editor especial para YAML. Su editor de texto favorito ya debería ser compatible con YAML o usar un complemento si es necesario.

Hay muchas cosas que puedes profundizar y aprender. Para eso, siempre puede consultar la documentación oficial de YAML.

¿Quiere ser un mejor administrador de sistemas o DevOps? Conviértase en un miembro del Manual de Linux hoy.


Linux
  1. 10 comandos que todo usuario de Linux debe conocer

  2. 3 trucos útiles que todo usuario de Linux debe conocer

  3. 7 comandos de red de Linux que todo administrador de sistemas debería conocer

  4. 20 ejemplos de comandos OpenSSL que debes conocer

  5. Accesos directos útiles de la terminal de Linux que todo usuario avanzado de Linux debe conocer

13 atajos de terminal de Linux que todo usuario avanzado de Linux debe conocer

DevOps vs Ingeniero de software:¿Cuál es la diferencia?

Responsabilidades principales de un ingeniero DevOps

¡Trucos de terminal de Linux que todo entusiasta de Linux debe conocer!

Los más de 50 comandos principales de Linux que DEBE conocer

Los 20 mejores sitios web de juegos Linux que todo jugador debe conocer