Cuenta Inicie sesión
Jump to section

¿Qué es YAML?

Copiar URL

YAML es un lenguaje de serialización de datos que suele utilizarse en el diseño de archivos de configuración. Para algunas personas, YAML significa otro lenguaje de marcado más; para otras, es un acrónimo recursivo que quiere decir YAML no es un lenguaje de marcado, lo que enfatiza la idea de que se utiliza para los datos, no para los documentos. 

Además, es un lenguaje de programación popular debido a que las personas pueden comprenderlo fácilmente y utilizarlo con otros lenguajes. Gracias a la flexibilidad y la accesibilidad que lo caracterizan, la herramienta de automatización de Ansible lo utiliza para crear procesos de automatización en forma de playbooks de Ansible.

YAML cuenta con funciones de Perl, C, XML, HTML y otros lenguajes de programación, y se basa en JSON, lo cual genera que los archivos JSON sean compatibles con YAML.

En YAML, se usa la sangría al estilo Python para indicar la incorporación de un elemento de código dentro de otro. No se admiten los caracteres de tabulación, así que se usan los espacios en blanco, ni tampoco hay símbolos comunes de formato, como las llaves, los corchetes, las etiquetas de cierre o las comillas. Los archivos YAML usan las extensiones .yml o .yaml. 

La estructura de los archivos puede ser un mapa o una lista.

Los mapas permiten asociar pares de clave-valor. Cada clave debe ser única y el orden no importa, tal como ocurre en un diccionario de Python o la asignación de variables en un script de Bash.

Es necesario resolver los mapas para poder cerrarlos, entones se origina uno nuevo. Es posible crear mapas nuevos aumentando el nivel de sangría o resolviendo el mapa anterior y comenzando uno adyacente. 

Las listas incluyen valores en un orden específico y pueden contener cualquier cantidad de elementos según sea necesario. Las secuencias de las listas empiezan con un guion (-) y un espacio, y se utiliza la sangría para separarlas del elemento principal, de manera similar a las listas de Python o los conjuntos en Bash o en Perl. Las listas se pueden incorporar a los mapas. 

YAML también contiene valores sencillos (escalares), que son datos arbitrarios (codificados en Unicode) que se pueden utilizar como cadenas, números enteros, fechas, números o booleanos.

Al crear un archivo YAML, es necesario asegurarse de que sea válido y siga las reglas sintácticas. Un linter es una herramienta que se usa para verificar la sintaxis de los archivos. El comando yamllint sirve para asegurarse de haber creado un archivo YAML válido antes de enviarlo a una aplicación.

A continuación aparece el ejemplo de un archivo YAML simple para el registro de un empleado, donde se muestran las reglas de la sintaxis.

 ---
 # An employee record name: Martin D'vloper 
job: Developer 
skill: Elite 
employed: True 
foods: 
- Apple 
- Orange 
- Strawberry 
- Mango 
languages:
 perl: Elite
 python: Elite
 pascal: Lame 
education: |
 4 GCSEs
 3 A-Levels
 BSc in the Internet of Things 

Uno de los usos más comunes es la creación de archivos de configuración. Se recomienda utilizar YAML en lugar de JSON para escribir los archivos de configuración porque es un lenguaje más fácil de comprender, aunque ambos pueden usarse de manera indistinta en la mayoría de los casos.  

Además de Ansible, hay otros elementos que utilizan YAML, como las implementaciones y los recursos de Kubernetes. 

Una de las ventajas de utilizarlo es que se pueden agregar los archivos a un control de versiones, como Github, para rastrear y auditar los cambios. 

¿Cuál es la diferencia entre Ansible y Red Hat Ansible Automation Platform?

YAML en Ansible

Los playbooks de Ansible se utilizan para organizar los procesos de TI. Un playbook es un archivo YAML que contiene por lo menos un play, y que sirve para definir el estado deseado de un sistema. 

Cada play ejecuta una o varias tareas, y cada una de ellas activa un módulo de Ansible, el cual se usa para llevar a cabo las tareas de automatización en Ansible y se puede escribir en cualquier lenguaje que se convierta a JSON, como Ruby, Python o Bash.

Un playbook de Ansible consiste en mapas y listas. Para crear uno, comience una lista de YAML donde se nombre un play y se enumeren las tareas en una secuencia. Recuerde que la sangría no indica una relación jerárquica lógica, sino que cada línea es como un tipo de datos de YAML (una lista o un mapa).

Los usuarios de Ansible pueden aprovechar las plantillas de YAML para programar que ciertas tareas repetitivas se ejecuten de manera automática, sin tener que aprender un lenguaje de programación avanzado.

YAML para Kubernetes

El funcionamiento de Kubernetes depende del estado definido y del real. Los objetos de Kubernetes representan el estado de un clúster, y comunican a la plataforma cuál es la apariencia de la carga de trabajo que usted desea. Se pueden crear recursos de Kubernetes, como los pods, los objetivos y las implementaciones, con los archivos YAML. 

Cuando cree un objeto de Kubernetes, para lo cual puede utilizar su propia API, deberá incluir especificaciones para definir su estado deseado. La solicitud a la API incluirá las especificaciones del objeto en JSON, pero lo más común es que usted proporcione la información obligatoria a kubectl como un archivo YAML. Kubectl convertirá el archivo al lenguaje YAML por usted cuando haga la solicitud a la API.

Una vez que se crea y se define el objeto, Kubernetes se encarga de garantizar su permanencia. 

Los desarrolladores o los administradores de sistemas indican el estado definido a través de los archivos YAML o JSON que envían a la API de Kubernetes. La plataforma utiliza un controlador para analizar la diferencia entre el nuevo estado definido y el real en el clúster.

Red Hat Ansible Automation Platform utiliza YAML, un lenguaje de automatización comprensible para las personas que permite que los usuarios de una empresa compartan, evalúen y gestionen el contenido de automatización.

La plataforma incluye las herramientas que se necesitan para implementar la automatización en toda la empresa, como los playbooks y los sistemas de análisis. Ofrece un panel visual, el control de acceso basado en funciones y otras herramientas, para que los usuarios centralicen y controlen la infraestructura de TI, lo cual ayuda a reducir la complejidad operativa.

Red Hat OpenShift es la plataforma de Kubernetes para las empresas. Incluye todos los elementos adicionales de tecnología que convierten a Kubernetes en una herramienta sólida y viable para la empresa; por ejemplo: registros, conexiones en red, telemetría, seguridad, automatización y servicios.

Gracias a Red Hat OpenShift, los desarrolladores pueden crear nuevas aplicaciones en contenedores, alojarlas e implementarlas en la nube con la capacidad de ajuste, la organización y el control necesarios para convertir una idea brillante en un nuevo negocio, en poco tiempo y sin complicaciones.

Siga leyendo

Artículo

Conceptos básicos de Ansible

Ansible se encarga de automatizar algunos procesos de la TI, como la preparación de la infraestructura y la gestión de la configuración. En esta introducción conocerá los conceptos básicos de Ansible.

Artículo

¿Qué es la gestión de los procesos empresariales?

La gestión de los procesos empresariales (BPM) consiste en modelar, analizar y optimizar los procesos integrales de esta naturaleza para lograr sus objetivos comerciales estratégicos.

Artículo

¿Por qué conviene elegir Red Hat para la automatización?

Red Hat Ansible Automation Platform incluye las herramientas que necesitan los equipos para implementar y compartir la automatización en toda la empresa.

Más información sobre la automatización

Productos

Red Hat Consulting

Servicio de nuestros asesores estratégicos, quienes tienen una visión amplia de su empresa, analizan sus desafíos y lo ayudan a superarlos con soluciones completas y rentables.

Red Hat Ansible Automation Platform

Plataforma que permite automatizar toda la empresa, sin importar en qué etapa del proceso de automatización se encuentre.

Red Hat Process Automation

Plataforma que permite desarrollar aplicaciones directamente en la nube para automatizar los procesos y las decisiones empresariales.

Contenido adicional

Ebook

La empresa automatizada: unificación de las personas y los procesos

Ebook

Automatice los flujos de trabajo de la infraestructura

VIDEO - THE SOURCE TV

Automatización

Vea como la automatización está revolucionando la TI a nivel mundial.

Capacitación

Curso de capacitación gratuito

Ansible Essentials: Simplicity in Automation Technical Overview

Video de capacitación

Automatización de AWS con Ansible

Illustration - mail

Obtenga más contenido como este

Suscríbase a nuestro boletín informativo: Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Productos

Herramientas

Realice pruebas, compras y ventas

Comunicarse

Acerca de Red Hat

Somos el proveedor líder a nivel mundial de soluciones empresariales de código abierto, incluyendo Linux, cloud, contenedores y Kubernetes. Ofrecemos soluciones reforzadas, las cuales permiten que las empresas trabajen en distintas plataformas y entornos con facilidad, desde el centro de datos principal hasta el extremo de la red.

Suscríbase a nuestra newsletter, Red Hat Shares

Suscríbase ahora

Seleccionar idioma

© 2022 Red Hat, Inc.