Account Login
Jump to section

YAML

Copiar URL

O YAML é uma linguagem de serialização de dados muito usada na escrita de arquivos de configuração. Dependendo, a sigla YAML pode significar em inglês yet another markup language (mais uma linguagem de marcação) ou YAML ain’t markup language (YAML não é linguagem de marcação) [acrônimo recorrente]. Ambos destacam que o YAML é voltado para os dados, e não documentos. 

Como linguagem de programação, o YAML é famoso por ser legível e fácil de entender. Ele também pode ser utilizado com outras linguagens de programação. Graças à sua flexibilidade e acessibilidade, o YAML é usado pela ferramenta Ansible para criar processos de automação no formato de Ansible Playbooks.

O YAML inclui funcionalidades que vêm do Perl, C, XML, HTML e outras linguagens de programação. E como também é um superconjunto do JSON, ele aceita arquivos nesse formato.

O YAML usa um recuo no estilo Python para indicar o aninhamento. É necessário utilizar espaços em branco porque os caracteres de tabulação não são permitidos. Não há símbolos de formato comuns, como chaves, colchetes, tags de fechamento ou aspas. Os arquivos YAML têm a extensão .yml ou .yaml. 

Os arquivos YAML são estruturados em mapas ou listas.

Com os mapas, é possível associar pares de chave-valor. Cada chave precisa ser única, e qualquer ordem é aceita. É como um dicionário Python ou uma atribuição de variável em um script bash.

É necessário resolver um mapa no YAML antes de encerrá-lo e poder criar um novo. Para criar um novo mapa, você aumenta o nível de recuo ou resolve o mapa anterior e inicia um adjacente. 

As listas incluem valores em uma ordem específica e podem conter qualquer quantidade de itens. A sequência de uma lista começa com um traço (-) e um espaço. Ela é separada da sequência-mãe pelo recuo. Uma sequência é como uma lista Python ou uma matriz em bash ou do Perl. É possível incorporar uma lista a um mapa. 

O YAML também inclui escalares, que são dados arbitrários codificados em Unicode. Eles podem ser usados como valores, incluindo strings, números inteiros, datas, números ou booleanos.

Ao criar um arquivo YAML, você precisa seguir estas regras de sintaxe e ter um arquivo válido. O linter é uma aplicação que verifica a sintaxe de um arquivo. Com o comando “yamllint”, você assegura que o arquivo YAML criado é válido antes de transmiti-lo para uma aplicação.

Veja este exemplo de um simples arquivo YAML que demonstra regras de sintaxe.

---
# Registro de funcionária
nome: Roberta da Silva
cargo: Desenvolvedora
nível de habilidade: Elite
contratada: True
frutas:
  - Maça
  - Laranja
  - Morango
  - Manga
linguagens:
  perl: Elite
  python: Elite
  pascal: Básico
educação: |
  4 Certificados de 2 grau completo
  3 cursos técnicos e profissionalizantes
  Bacharel em Internet das Coisas

Um dos casos de uso mais comuns do YAML é a criação de arquivos de configuração. A recomendação é que os arquivos de configuração sejam escritos em YAML, em vez do JSON. Ainda assim, esses formatos podem ser usados de maneira intercambiável, geralmente, porque o YAML é mais fácil de ler e usar.  

Além de ser usado no Ansible, o YAML também está nas implantações e recursos do Kubernetes. 

Um benefício dessa linguagem é que os arquivos YAML podem ser adicionados a controladores de origem, como o Github, para viabilizar o rastreamento e auditoria das alterações. 

Person working on their laptop

Qual a diferença entre o Ansible e o Red Hat Ansible Automation Platform?

YAML no Ansible

Os Ansible Playbooks são usados para orquestrar processos de TI. Um playbook é um arquivo YAML contendo uma ou mais plays. Ele é usado para definir o estado desejado de um sistema. 

Cada play pode executar uma ou mais tarefas que invocam um módulo do Ansible. Os módulos são usados para realizar tarefas de automação no Ansible. Os módulos do Ansible podem ser escritos em qualquer linguagem que retorne JSON, como Ruby, Python ou bash.

Os Ansible Playbooks são compostos por mapas e listas. Para criar um playbook, comece com uma lista YAML que dê um nome ao play e classifique as tarefas formando uma sequência. Lembre-se de que o recuo não indica herança de lógica. É como se cada linha fosse um tipo de dados YAML (lista ou mapa).

Com os templates do YAML, os usuários do Ansible conseguem programar a automação de tarefas repetitivas sem precisar aprender uma linguagem de programação avançada.

YAML no Kubernetes

O funcionamento do Kubernetes é baseado no estado real e no estado definido. Os objetos representam o estado de um cluster e informam ao Kubernetes como será a carga de trabalho. É possível criar recursos do Kubernetes como pods, objetos e implantações usando arquivos YAML. 

Ao criar um objeto do Kubernetes, você precisa incluir especificações para definir o estado pretendido para ele. O objeto pode ser criado por meio da API do Kubernetes. A solicitação para a API precisa incluir as especificações do objeto em JSON. No entanto, é mais comum que você ofereça as informações necessárias ao kubectl como um arquivo YAML. O kubectl converte o arquivo em YAML quando faz a solicitação para à API.

Depois que você cria e define um objeto, o Kubernetes trabalha para assegurar que ele sempre exista. 

Para especificar o estado desejado, os desenvolvedores ou administradores de sistemas usam arquivos YAML ou JSON enviados à API do Kubernetes. O controlador é utilizado pelo Kubernetes para analisar a diferença entre os estados definido e real no cluster.

Com a linguagem de automação YAML legível do Red Hat Ansible Automation Platform, os usuários de uma organização podem compartilhar, examinar e gerenciar conteúdo de automação.

A solução oferece todas as ferramentas necessárias para implementar a automação em toda a empresa, incluindo playbooks e análise de dados. Os usuários centralizam e controlam a infraestrutura de TI por meio de um painel gráfico, controle de acesso baseado em função e muito mais para reduzir a complexidade operacional.

O Red Hat OpenShift é uma solução Kubernetes para empresas. Ele oferece todos os elementos adicionais que tornam o Kubernetes potente e viável para as empresas, incluindo componentes de registro, rede, telemetria, segurança, automação e serviços.

Com o Red Hat OpenShift, os desenvolvedores podem criar novas aplicações em containers para hospedá-las e implantá-las na nuvem. Tudo isso com a escalabilidade, o controle e a orquestração necessários para transformar boas ideias em negócios valiosos, de forma rápida e fácil.

Leia mais

Artigo

Noções básicas do Ansible

O Ansible automatiza processos de TI como provisionamento e gerenciamento de configuração. Conheça as noções básicas do Ansible com esta introdução aos principais conceitos.

Artigo

O que é gerenciamento de processos de negócios?

Gerenciamento de processos de negócios (BPM) é a prática de modelar, analisar e otimizar processos de ponta a ponta para alcançar os objetivos estratégicos.

Artigo

Por que escolher a Red Hat para a automação?

O Red Hat Ansible Automation Platform oferece todas as ferramentas necessárias para compartilhar a automação entre as equipes e implementá-la por toda a empresa.

Leia mais sobre automação

Soluções Red Hat

Red Hat Consulting

Os consultores estratégicos da Red Hat fornecem uma visão geral da sua organização, analisam os desafios e ajudam a superá-los com soluções abrangentes e econômicas.

Red Hat Ansible Automation Platform

Uma plataforma com suporte completo para implementar a automação em escala, de ponta a ponta.

Red Hat Process Automation

Uma plataforma para o desenvolvimento de aplicações nativas em nuvem que automatiza decisões e processos de negócios.

Conteúdo adicional

Ebook

A empresa automatizada: unifique pessoas e processos

VÍDEO - THE SOURCE TV

Automação

A automação é fundamental para acelerar a entrega de serviços e minimizar o risco de erro humano

Treinamentos Red Hat

Treinamento gratuito

Ansible Essentials: Simplicity in Automation Technical Overview

Treinamento gratuito

Red Hat Ansible Automation for SAP

Illustration - mail

Quer receber mais conteúdo deste tipo?

Cadastre-se para receber a nossa newsletter Red Hat Shares.

Red Hat logo LinkedInYouTubeFacebookTwitter

Produtos

Ferramentas

Experimente, compre, venda

Comunicação

Sobre a Red Hat

A Red Hat é a líder mundial em soluções empresariais open source como Linux, nuvem, containers e Kubernetes. Fornecemos soluções robustas que facilitam o trabalho em diversas plataformas e ambientes, do datacenter principal até a borda da rede.

Assine nossa newsletter Red Hat Shares

Cadastre-se agora

Selecione um idioma

© 2022 Red Hat, Inc.