Qual é o Ansible – O Guia Definitivo

O Ansible é a ferramenta DevOps mais amplamente utilizada para gerenciar mudanças em sua infraestrutura de nuvem ou data center. Neste artigo, você terá uma visão geral de como o Ansible funciona e como você pode começar a usá-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 do Linux, criar dezenas de usuários do Linux, atualizar senhas e muito mais.

O Ansible é uma solução sem agente que gerencia máquinas sobre o protocolo Secure Shell Host (SSH). Ele requer um banco de dados, mas não usa nenhum serviço em segundo plano (daemons).

O Ansible utiliza comandos ad hoc integrados e playbooks do Ansible</diy9 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 que você tem uma ideia básica do que é o Ansible. Mas para o Ansible funcionar, você precisará de quatro componentes:

  1. 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 software nos nós remotos.
  2. 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. Esses também são conhecidos como hosts do Ansible.
  3. A 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.
  4. Módulos do Ansible, também conhecidos como módulos principais do Ansible, são os plugins de código ou bibliotecas que podem ser usados a partir da linha de comando ou de uma tarefa de playbook. O Ansible executa cada módulo, normalmente no nó remoto gerenciado.

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 depois automatizar suas soluções no futuro? Ansible é uma ferramenta de gerenciamento 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 do 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 gerenciados pela equipe central do Ansible e sempre serão enviados com o Ansible em si.
  • 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 do Ansible.

Casos de uso para o Ansible

Se me perguntar sobre os principais casos de uso para o Ansible, não posso escrever uma lista completa, pois há centenas de coisas que o Ansible pode fazer. Começa com tarefas básicas, como reiniciar serviços em nós remotos, até implantar aplicativos Tomcat.

Vamos passar por alguns dos casos de uso onde o Ansible se mostra útil:

  • Se você precisar executar tarefas e playbooks em diferentes sistemas com um único comando, você pode fazer isso com variáveis Ansible.
  • Para recuperar dados de vários sistemas, você pode usar fatos Ansible. Fatos Ansible são dados coletados de nós-alvo e retornados aos nós controladores.
  • O cofre Ansible pode ser usado para acessar dados sensíveis como senhas, ou implantar aplicativos com senhas seguras.
  • O Ansible possui uma funcionalidade de pesquisas para acessar bancos de dados e APIs para recuperar dados de uma loja de dados externa.

Opções de instalação do Ansible

O Ansible é uma ferramenta fácil de instalar que é suportada em vários sistemas operacionais. Vamos rapidamente verificar em quais sistemas operacionais o Ansible é suportado.

O Ansible pode ser executado no Windows?

Você não pode instalar o Ansible no Windows. No entanto, é possível usá-lo para gerenciar sistemas operacionais baseados no Windows. Aqui estão alguns casos de uso possíveis:

  • Coletar fatos do Ansible em hosts Windows.
  • Instalar e desinstalar MSIs.
  • Habilitar/desabilitar recursos do Windows.
  • Iniciar, parar e gerenciar serviços do Windows.

Gerenciamento de configuração do Ansible

Antes de executar seu primeiro comando do Ansible, você deve saber como configurar seu host Controlador do Ansible, 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 nós remotos agrupados, que o Ansible utiliza ao implantar ou gerenciar recursos.

Há duas maneiras diferentes de armazenar o inventário do Ansible:

  1. Por padrão, o inventário do Ansible é armazenado no arquivo /etc/ansible/hosts.
  2. Você também pode usar um caminho personalizado especificando a opção -I <caminho> na linha de comando.

Também 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 do 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 executar 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ê. Os 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 juntamente com o módulo ping.

ansible all -m ping 
Using an Ansible Ad hoc command to ping all Ansible remote nodes

O que é um playbook do Ansible?

Quando você precisa executar várias tarefas do Ansible simultaneamente, é necessário usar playbooks do Ansible.

Os playbooks do Ansible permitem que você implante aplicações complexas 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 precisar gerenciá-lo ou instalá-lo?

O Ansible é hospedado em uma máquina Linux. Mas se deseja usar a versão em nuvem, sem se preocupar em gerenciar o Ansible localmente, então use Ansible Tower, que é uma solução baseada na web. Com a versão em nuvem, você ainda utiliza módulos para configurar ou gerenciar máquinas remotas e executar comandos ou Playbooks do Ansible.

O Ansible Tower também permite controlar o acesso de 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 expandir servidores e instâncias se você precisar executar várias tarefas nos nós remotos.

Conclusão

O Ansible é uma ferramenta gratuita com uma ampla variedade de recursos. Com este guia, agora você deve entender o que é possível com esta ferramenta rica em recursos! Desde a gestão de configurações, uso de vários módulos do Ansible para executar comandos Ad hoc, playbooks do 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:


Source:
https://petri.com/what-is-ansible/