O Ansible é a ferramenta de DevOps mais amplamente utilizada para gerenciar alterações em sua infraestrutura em nuvem ou centro de dados. Neste artigo, você terá uma visão geral de como o Ansible funciona e como pode começar a utilizá-lo.
O que é o Ansible?
O Ansible é uma ferramenta de plataforma de automação usada para implantar facilmente aplicativos e configurações do sistema em vários servidores. Pode ser usado para iniciar serviços Linux, criar dezenas de usuários Linux, atualizar senhas e muito mais.
O Ansible é uma solução sem agente que gerencia máquinas sobre o protocolo Secure Shell Host (SSH). Requer um banco de dados, mas não utiliza serviços em segundo plano (daemons).
O Ansible usa comandos ad hoc integrados e playbooks do Ansible para implantar software ou executar comandos. Além disso, o Ansible contém centenas de módulos para implantar ou configurar nós remotos.
Como o Ansible funciona
Agora, você tem uma ideia básica do que é o Ansible. Mas para o Ansible funcionar, você precisará de quatro componentes:
- O Nó de Controle do Ansible, também conhecido como host Controlador do Ansible, é o servidor onde o Ansible está instalado. Este nó executa todos os comandos ad hoc do Ansible e os playbooks do Ansible para implantar ou gerenciar as configurações ou softwares nos nós remotos.
- Nós remotos do Ansible, também conhecidos como nós gerenciados do Ansible, são os servidores ou dispositivos de rede onde você implanta aplicativos ou configurações usando comandos ad hoc do Ansible ou um playbook do Ansible. Estes são também conhecidos como hosts do Ansible.
- O Inventário do Ansible é um arquivo no host Controlador do Ansible ou nó de Controle que contém uma lista de todos os hosts remotos ou nós gerenciados.
- Módulos do Ansible, também conhecidos como módulos básicos do Ansible, são os plugins de código ou bibliotecas de plugins que podem ser usados a partir da linha de comando ou de uma tarefa do playbook. O Ansible executa cada módulo, geralmente no nó gerenciado remoto.
Por que usar o Ansible?
Trabalhando em TI, é provável que você esteja realizando as mesmas tarefas repetidamente. E se você pudesse resolver problemas uma vez e então automatizar suas soluções no futuro? O Ansible é uma ferramenta de gestão de configuração que permite gerenciar e implantar software em nós remotos de forma fácil e eficiente.
O Ansible possui centenas de módulos que podem ser usados ao gerenciar servidores remotos. Os módulos Ansible são categorizados em duas partes:
- Módulos principais do Ansible (ou ansible-core) que mencionamos anteriormente, são os principais blocos de construção e arquitetura do Ansible. Eles são de propriedade e gerenciamento da equipe principal do Ansible e sempre serão fornecidos com o próprio Ansible.
- Uma coleção do Ansible é um formato de distribuição para o Ansible que você pode usar para empacotar e distribuir playbooks, funções, módulos e plugins. Uma coleção típica aborda um conjunto de casos de uso relacionados. Você pode criar uma coleção e publicá-la no Ansible Galaxy.
? Ansible Galaxy refere-se ao site Galaxy onde os usuários podem compartilhar funções, instalar, criar e gerenciar módulos Ansible.
Casos de uso para o Ansible
Se me perguntar sobre os principais casos de uso do Ansible, não consigo escrever uma lista inteira, pois há centenas de coisas que o Ansible pode fazer. Isso vai desde tarefas básicas, como reiniciar serviços em nós remotos, até implantar aplicativos Tomcat.
Vamos ver alguns dos casos de uso onde o Ansible se mostra útil:
- Se você precisa executar tarefas e playbooks em diferentes sistemas com um único comando, você pode fazer isso com variáveis do Ansible.
- Para recuperar dados de vários sistemas, você pode usar fatos do Ansible. Fatos do Ansible são dados coletados dos nós alvo e retornados para os nós controladores.
- O cofre do Ansible pode ser usado para acessar dados sensíveis como senhas, ou implantar aplicativos com senhas seguras.
- O Ansible possui uma funcionalidade de lookups para acessar bancos de dados e APIs a fim de recuperar dados de um armazenamento de dados externo.
Opções de instalação do Ansible
O Ansible é uma ferramenta fácil de instalar que é suportada em vários sistemas operacionais. Vamos rapidamente ver em quais sistemas operacionais o Ansible é suportado.
- Você pode instalar o Ansible no RHEL, CentOS, Fedora, Ubuntu, Debian, Gentoo com portage, FreeBSD, macOS, Solaris, Arch Linux, Slackware Linux, Clear Linux.
- Você pode instalar o Ansible usando o instalador de pacotes Pip para Python.
O Ansible pode ser executado no Windows?
Não é possível instalar o Ansible no Windows, mas ele pode ser usado para gerenciar sistemas operacionais baseados no Windows. Aqui estão alguns casos de uso possíveis:
- Coleta de fatos do Ansible em hosts Windows.
- Instalação e desinstalação de MSIs.
- Habilitação e desabilitação de recursos do Windows.
- Iniciar, parar e gerenciar serviços do Windows.
Gerenciamento de configuração do Ansible
Antes de executar seu primeiro comando Ansible, você deve saber como configurar seu host Ansible Controller, inventário do Ansible, playbooks do Ansible, etc.
O arquivo de inventário do Ansible contém a lista de todos os nós remotos do Ansible ou notas remotas agrupadas, que o Ansible utiliza durante a implantação ou gerenciamento de recursos.
Existem duas maneiras diferentes de armazenar o inventário do Ansible:
- Por padrão, o inventário do Ansible é armazenado no arquivo /etc/ansible/hosts.
- Você também pode usar um caminho personalizado especificando a opção -I
na linha de comando.
Além disso, existem duas maneiras de configurar o inventário do Ansible:
- Formato INI: Um arquivo INI é um arquivo de configuração que consiste em nomes de grupos entre colchetes para alocar hosts em diferentes grupos. No exemplo abaixo, server1.abc.com não tem grupos alocados; no entanto, server3.abc.com e server4.abc.com fazem parte do Grupo1.
server1.abc.com [Group1] server3.abc.com server4.abc.com
- Formato YAML: Outra maneira de declarar o inventário do Ansible é usando YAML, que é um superset de JSON, outra linguagem de serialização de dados. A sintaxe do formato YAML é definida abaixo.
Similar ao que explicamos acima para o código no formato INI, dois servidores aqui (server3.abc.com e server4.abc.com) são membros do grupo Grupo1.
all: hosts: server1.abc.com children: Group1: hosts: server3.abc.com server4.abc.com
Comandos Ad hoc do Ansible
Se você precisa realizar uma tarefa rápida, como reiniciar ou iniciar um serviço Linux em um nó remoto do Ansible, o comando Ad hoc do Ansible está aqui para você. Comandos Ad hoc são uma maneira rápida e eficiente de executar um único comando em nós remotos.
Por exemplo, para pingar todos os nós remotos do Ansible usando o comando Ad hoc do Ansible, você precisará executar o comando abaixo. Aqui, ‘all’ representa todos os hosts configurados no inventário do Ansible e -m é a flag usada junto com o módulo de ping.
ansible all -m ping

O que é um playbook do Ansible?
Quando você precisa executar várias tarefas do Ansible simultaneamente, você precisa usar os playbooks do Ansible.
Os playbooks do Ansible permitem implantar aplicativos complexos e oferecem gerenciamento de configuração simples e reutilizável. Eles também suportam implantações em várias máquinas e podem ser usados para executar várias tarefas várias vezes.
Os playbooks do Ansible são escritos no formato YAML e contêm várias tarefas executadas em ordem sequencial. Um exemplo de playbook do Ansible é mostrado abaixo.
Neste exemplo, o playbook do Ansible contém duas tarefas do Ansible (1 e 2), que instalam o Apache e o Java nos nós remotos.
# Playbook apache.yml --- - name: Ansible Playbook Examples hosts: servers # Define all the hosts remote_user: ubuntu # Remote_user is ubuntu # Defining the Ansible tasks tasks: - name: Ansible Task 1 apt: name: httpd state: latest tasks: - name: Ansible Task 2 apt: name: open-jdk state: latest
Ansible Tower: Uma solução baseada na web
Embora agora você tenha uma boa ideia de como o Ansible funciona, e se você quiser usá-lo sem ter que gerenciá-lo ou instalá-lo?
O Ansible é hospedado em uma máquina Linux. Mas se deseja usar a versão em nuvem, sem o incômodo de gerenciar o Ansible localmente, então use o Ansible Tower, que é uma solução baseada na web. Com a versão em nuvem, ainda é possível usar módulos para configurar ou gerenciar máquinas remotas e executar comandos Ansible ou Playbooks do Ansible.
O Ansible Tower também permite controlar o acesso para todos os usuários, cuidando das credenciais SSH e do inventário do Ansible. Ele também registra todos os trabalhos, integra-se bem com o Protocolo de Acesso a Diretórios Leves (LDAP) e possui uma incrível API REST navegável. O Ansible Tower tem a capacidade de dimensionar servidores e instâncias, caso precise executar várias tarefas nos nós remotos.
Conclusão
O Ansible é uma ferramenta gratuita com muitos recursos. Com este guia, agora você deve entender o que é possível com esta ferramenta rica em recursos! Desde gerenciar configurações, usar vários módulos Ansible para executar comandos Ad hoc, playbooks Ansible, e implantar dezenas de ferramentas de software, o Ansible é uma das ferramentas de automação mais amplamente utilizadas.
Agora que você tem uma boa ideia de como o Ansible funciona, o que você planeja implantar com ele?
Artigos Relacionados:
- O que é um pipeline de DevOps?
- O que é Grafana – O Guia Definitivo
- O que é Datadog – O Guia Definitivo