O que é um Ansible Playbook?
Um Ansible® Playbook é um blueprint de tarefas de automação, que são ações de TI complexas executadas com pouco esforço manual em um inventário de soluções de TI. Os playbooks instruem o Ansible sobre o que fazer em quais dispositivos.
Em vez de aplicar a mesma ação manualmente a centenas ou milhares de tecnologias semelhantes nos diferentes ambientes de TI, ao executar automaticamente um playbook, a mesma ação é realizada em um tipo especificado de inventário, como um conjunto de roteadores. Os playbooks também servem de framework com um código previamente escrito que os desenvolvedores podem usar da forma em que está para uma finalidade específica ou como template inicial.
Em geral, eles são usados para automatizar a infraestrutura de TI (como sistemas operacionais e plataformas Kubernetes), redes, sistemas de segurança e repositórios de códigos (como o GitHub). A equipe de TI pode usar os playbooks para programar aplicações, serviços, nós de servidor e outros dispositivos sem o sobre-esforço manual de criar tudo do zero.
Além disso, os playbooks podem ser salvos, compartilhados ou reutilizados indefinidamente, assim como suas condições, variáveis e tarefas. Assim, é mais fácil preservar o conhecimento operacional na forma de código para ter certeza de que as mesmas ações serão executadas consistentemente.
Como funcionam os Ansible Playbooks?
Os Ansible Playbooks são listas de tarefas executadas automaticamente em inventários ou grupos de hosts especificados por você. É possível usar uma ou mais tarefas combinadas do Ansible para criar um play (um grupo ordenado de tarefas mapeadas para hosts específicos). As tarefas são executadas na ordem em que são escritas. Um playbook pode incluir uma ou mais plays, além dos Ansible Roles, os quais são pacotes de tarefas e recursos de automação associados executáveis em várias plays ou reutilizados nos playbooks.
As tarefas são executadas por módulos, sendo que cada um realiza uma tarefa específica no playbook. Cada módulo contém metadados que determinam quando e onde uma tarefa é executada, além de qual usuário a executa. Existem milhares de módulos do Ansible que executam tarefas de TI de todos os tipos, como:
Gerenciamento de nuvem
oci_vcn cria, exclui ou atualiza redes de nuvem virtual em ambientes do Oracle Cloud Infrastructure. Da mesma forma, vmware_cluster adiciona, remove ou atualiza clusters do VMware vSphere.
Gerenciamento de usuários
selogin mapeia os usuários do sistema operacional Linux® para o usuário do SELinux, e gitlab_user cria, atualiza ou exclui usuários do GitLab.
Rede
Dezenas de módulos gerenciam interfaces de programação de aplicações (APIs), dispositivos Cisco IOS, NXOS e IOS XR, serviços F5 BIG-IP e o sistema operacional de rede em nuvem Arista EOS.
Segurança
Openssh_cert gera certificados de usuário ou host OpenSSH, e ipa_config gerencia configurações globais do FreeIPA.
Gerenciamento de configuração
pip gerencia dependências de bibliotecas Python, e assemble consolida arquivos de configuração a partir de fragmentos.
Comunicação
mail envia emails automáticos baseados em alguns critérios, e snow_record cria, exclui ou atualiza um registro único no ServiceNow.
Recursos da Red Hat
Vídeo: Explicação de um especialista
Exemplo prático de um Ansible Playbook
O Ansible é capaz de se comunicar com várias classificações de dispositivos, de APIs REST baseadas na nuvem a sistemas Linux e Windows, hardware de rede e muito mais. Este é um exemplo de dois módulos Ansible atualizando automaticamente dois tipos de servidores:
--- - name: Update web servers hosts: webservers become: true tasks: - name: Ensure apache is at the latest version ansible.builtin.yum: name: httpd state: latest - name: Write the apache config file ansible.builtin.template: src: /srv/httpd.j2 dest: /etc/httpd.conf mode: "0644" - name: Update db servers hosts: databases become: true tasks: - name: Ensure postgresql is at the latest version ansible.builtin.yum: name: postgresql state: latest - name: Ensure that postgresql is started ansible.builtin.service: name: postgresql state: started
O playbook contém duas reproduções:
- A primeira verifica se o software do servidor web está atualizado e executa a atualização, se necessário.
- A segunda verifica se o software do servidor do banco de dados está atualizado e executa a atualização, se necessário.
Como usar os Ansible Playbooks?
O Ansible usa sintaxe YAML. Dependendo a quem você pergunta, YAML pode ser só mais uma linguagem de marcação ou não. Também há duas extensões YAML diferentes e igualmente aceitáveis: .yaml ou .yml.
Existem duas maneiras de usar os Ansible Playbooks: na interface de linha de comando (CLI) ou usando as implantações com um simples clique do Red Hat® Ansible Automation Platform.
Como YAML é uma linguagem de programação fácil de entender, os profissionais de TI com conhecimento específico em um determinado domínio (como rede, segurança ou nuvem) podem criar playbooks sem precisar aprender uma linguagem de codificação complicada.
A partir da CLI
Após instalar o projeto open source do Ansible ou o Red Hat Ansible Automation Platform (bastando digitar "sudo yum install ansible" na CLI do RHEL), tudo o que você precisa fazer é usar o comando ansible-playbook para executar os Ansible Playbooks.
A partir da plataforma
A interface de usuário baseada na web do Red Hat Ansible Automation Platform inclui implantações de Ansible Playbooks com um simples clique, que são usadas como parte de tarefas maiores (ou templates de tarefas). Elas contam com proteções adicionais que são muito úteis para usuários sem muita experiência em automação de TI ou em CLI.
Por que escolher a Red Hat?
O Red Hat Ansible Automation Platform é uma plataforma de automação unificada capaz de automatizar processos inteiros em diversas áreas da TI, e para uma variedade de casos de uso, incluindo infraestrutura, nuvem híbrida, segurança e redes, do ambiente on-premise à edge. A solução oferece todas as ferramentas necessárias para implementar a automação em toda a empresa, incluindo playbooks, analytics e uma solução orientada a eventos. As equipes centralizam e controlam a infraestrutura de TI usando um dashboard gráfico, controle de acesso baseado em função e outras funcionalidades que ajudam a reduzir a complexidade operacional.
Com uma subscrição da Red Hat, você tem acesso ao conteúdo certificado com suporte da Red Hat e do nosso ecossistema de parceiros, a serviços de gerenciamento hospedados e ao suporte técnico de ciclo de vida para escalar a automação por toda a sua empresa. Tudo isso com o conhecimento especializado que acumulamos ao trabalhar com sucesso junto a milhares de clientes.
A introdução do Red Hat Ansible Lightspeed com IBM watsonx Code Assistant faz o Ansible mais acessível para iniciantes ao tornar as equipes mais eficientes para aprender, criar e fazer manutenção do conteúdo do Red Hat Ansible Automation Platform. Esse serviço de inteligência artificial generativa aceita prompts inseridos por um usuário e, em seguida, interage com os modelos-base do IBM watsonx para produzir recomendações de código baseadas nas práticas recomendadas do Ansible, ajudando você a converter o know-how do assunto em um código Ansible confiável e escalável entre equipes e domínios.
Os recursos integrados do Red Hat Ansible Automation Platform oferecem um acelerador pronto para uso. É o padrão que muitos de nossos fornecedores e parceiros usam para escrever scripts e instalar, configurar e manter suas tecnologias.
Blog da Red Hat
Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.