Voltar ao blog

Instalando e Configurando o Ansible no Ubuntu 20.04

Instalando e Configurando o Ansible no Ubuntu 20.04

Se você é um administrador de sistemas, é importante que tenha uma maneira consistente de gerenciar todos os servidores e computadores que está usando. Os sistemas de gerenciamento de configuração podem simplificar bastante o processo. Eles gerenciam todos os sistemas de forma eficiente a partir de um local central.

No Linux, existem múltiplos sistemas de gerenciamento de configuração disponíveis. Por exemplo, Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine, etc. Embora ferramentas como o Puppet e o Chef tendam a ser mais complexas e avançadas, o Ansible oferece simplicidade e facilidade de uso. Você não precisa instalar nenhum software de cliente adicional nos nós para fazer o Ansible funcionar. Em vez disso, o Ansible usa SSH para gerenciar e automatizar sistemas. O Ansible é um software de código aberto. Ele também é altamente escalável, consistente e confiável.

Este guia demonstra como instalar e configurar o Ansible no Ubuntu 20.04.

Ansible no Ubuntu

O Ansible pode realizar três tipos de automação:

  • Provisionamento: Ele pode estabelecer vários servidores de acordo com as necessidades da infraestrutura.

  • Gerenciamento de configuração: Ele pode realizar várias alterações de configuração nos servidores. Por exemplo, iniciar e parar serviços, instalar aplicativos e atualizações, implementar políticas de segurança, etc.

  • Implantação de aplicativos: Ele facilita o DevOps com a implantação automatizada de aplicativos desenvolvidos internamente no sistema de produção.

O Ansible pode funcionar perfeitamente em quase qualquer ambiente de TI – sejam servidores hospedados ou tradicionais, plataformas de virtualização ou na nuvem. Ele também suporta o gerenciamento de vários sistemas, como bancos de dados, redes, firewalls, dispositivos de armazenamento e muitos outros. A CloudSigma também suporta o Ansible para a nossa infraestrutura em nuvem.

Pré-requisitos

Para este guia, precisamos de algumas máquinas:

  • Nó de controle: O nó de controle é o nó central que se conecta a todos os nós host, emite tarefas e gerencia vários aspectos do sistema. O nó de controle pode ser qualquer coisa – uma máquina local ou um servidor remoto.

  • Nó host: Os hosts do Ansible são as máquinas que o nó de controle do Ansible pode automatizar.

Como o título do guia sugere, espera-se que todas essas máquinas estejam configuradas com o Ubuntu 20.04 com os pacotes mais recentes. Aqui está um guia rápido sobre configuração de um servidor Ubuntu. Como o Ansible usa SSH para se conectar às máquinas, todos os nós host devem estar configurados corretamente com chaves SSH com o nó de controle. Certifique-se de que todos os nós host tenham a chave SSH pública do nó de controle adicionada ao authentication_keys arquivo. Siga nosso tutorial para aprender como gerar e adicionar chaves SSH a servidores Linux.

Passo 1: Instalando o Ansible

No caso do Ubuntu, não há necessidade de nenhuma configuração adicional de pacote ou repositório. O Ansible está disponível diretamente nos servidores de pacotes oficiais do Ubuntu. A realização de quaisquer alterações no nível do sistema requer acesso administrativo – o usuário root ou um usuário não-root com privilégio sudo. O arquivo sudoers gerencia a permissão sudo para usuários e grupos.

Primeiro, instalaremos o Ansible no computador que servirá como nó de controle. Para instalar o Ansible no nó de controle, execute os seguintes comandos:

Control apt update

Install ansible

Se você for usar uma senha como mecanismo de autenticação SSH, precisará ter o pacote sshpass instalado:

Install sshpass

Passo 2: Configurando o Arquivo de Inventário

No Ansible, o arquivo de inventário contém informações sobre todos os hosts que o ansible gerenciará. Podem ser dezenas ou centenas de servidores registrados no arquivo de inventário. Geralmente, o arquivo de inventário é usado para estabelecer variáveis que serão válidas apenas para os hosts ou grupos. É uma técnica útil na escrita de playbooks e templates. Certas variáveis também podem influenciar como um playbook é executado.

O Ansible vem com um arquivo de inventário padrão. Primeiro, abra o arquivo em um editor de texto:

Ansible hosts file

Por padrão, o arquivo de inventário contém vários exemplos para referência. Aqui está um exemplo com um grupo chamado servers contendo três servidores diferentes. A variável ansible_python_interpreter define o interpretador Python para todos os hosts incluídos no inventário. Com a diretiva ansible_user, podemos declarar a conta de usuário à qual o Ansible se conectará:

Ansible hosts file updated

Em seguida, salve o arquivo e feche o editor. Para verificar o inventário, execute o seguinte comando:

A saída deve ser parecida com isto:

Ansible inventory list

Passo 3: Teste de Conexão

Após configurar o arquivo de inventário, precisamos testar se o Ansible consegue se conectar a esses servidores via SSH. Podemos fazer isso simplesmente enviando um ping para todos os nós hosts. A partir do nó de controle, envie um ping para todos os nós  hosts:

O módulo ping verifica as seguintes coisas:

  • Acessibilidade do host

  • Validade das credenciais SSH

  • Os hosts podem executar módulos do Ansible usando Python

A saída deve ser parecida com isto:

Ansible ping all

Se a resposta de um nó específico for pong, isso significa que o nó está pronto para executar comandos e playbooks do Ansible no servidor.

Passo 4: Executando Comandos Ad-Hoc

Este é um passo opcional. No entanto, pode ser útil para verificar a funcionalidade completa do Ansible nos servidores remotos. Esta seção também pode servir como uma introdução básica ao uso e configuração adicionais do Ansible. Assim que confirmarmos a conectividade com os nós, podemos começar a executar comandos ad-hoc e playbooks. Qualquer comando que você executaria normalmente nos servidores remotos pode ser executado com o Ansible em todos os servidores.

Aqui, execute o seguinte comando. Ele verificará o uso do disco em todos os nós ao mesmo tempo:

Ansible all df cmd

Também podemos executar vários módulos do Ansible usando o recurso de comando ad-hoc, assim como executamos o ping módulo para testes. Por exemplo, o apt módulo funciona com o gerenciador de pacotes APT no Ubuntu. Ele pode gerenciar pacotes em um nó Ubuntu remoto. Observe que ele requer permissão de root para fazer alterações em nível de sistema. O nó remoto deve permitir o login como root ou o usuário deve ter permissão para executar tarefas administrativas.

No exemplo a seguir, o Ansible instala o Nginx em todos os nós hosts:

Que tal executar comandos em apenas um único servidor? Usaremos o apelido do servidor (atribuído no arquivo de inventário) para especificar o servidor:

Adhoc cmd df selected host

Também podemos especificar múltiplos servidores. Declare o apelido de cada servidor de destino com dois pontos como delimitador:

Adhoc cmd df multiple hosts

Considerações Finais

Neste guia, mostramos um método passo a passo para instalar o Ansible e configurar um arquivo de inventário para executar comandos ad-hoc a partir do nó de controle do Ansible. Uma vez configurado, o nó de controle pode executar qualquer comando ou playbook que você desejar nos hosts.

Boa computação!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.