Como instalar e configurar o Ansible no Ubuntu?

Introdução ao Ansible no Ubuntu para melhor provisionamento de ambiente e gerenciamento de configuração.

O gerenciamento de configuração é um estágio crucial no ciclo de vida do DevOps. Ajuda na automação e orquestração da infraestrutura de TI.

Existem várias ferramentas para gerenciamento de configuração, por exemplo, Puppet, Ansible, Chef e SaltStack. E, claro, o Ansible é uma das ferramentas mais populares no DevOps. Ele pode gerenciar milhares de servidores e toda a sua infraestrutura de TI com facilidade.

Vamos cobrir o seguinte neste artigo.

  • Instalação Ansible
  • Troca de chave SSH
  • Configuração do cliente Ansible
  • Teste Ansible

Instalação Ansible

Para simplificar, vamos tentar usar o Ansible em dois servidores. Um será ansible-server e outro ansible-client com o seguinte IP.

  • servidor ansible – 10.0.0.1
  • ansible-client – ​​10.0.0.25

A instalação é simples… o seguinte precisa ser feito em todos os servidores em que você deseja usar o Ansible. Neste caso, acima de ambos os servidores.

  • Execute o comando abaixo para instalar o software necessário para instalar o ansible.
[email protected]:~# apt install software-properties-common
  • Instale o repositório com o pacote ansible.
[email protected]:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Atualize a ferramenta de empacotamento avançada (apt)
[email protected]:~# apt update
  • E, finalmente – execute o comando abaixo para instalar
[email protected]:~# apt install ansible

Levará alguns segundos para instalar o pacote necessário.

  Como usar seus AirPods e AirPods Pro: o guia completo

Como você garante sua instalação e sua versão?

Bem, é fácil. Você pode usar a sintaxe –version com ansible para descobrir como abaixo.

[email protected]:~# ansible --version
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
[email protected]:~#

Como você pode ver, o Ansible 2.8.1 está instalado e fornece as informações necessárias, como localização do arquivo de configuração, módulo python.

Em seguida, precisamos fazer a troca de chaves SSH para que o serviço e um cliente possam conversar entre si.

Troca de chave SSH

O Ansible se conecta ao seu cliente por meio de SSH (Secure shell).

Vamos primeiro gerar uma chave pública no ansible-server, que precisa ser copiada para o ansible-client.

Certifique-se de estar logado como usuário root.

  • Gere a chave usando o comando ssh-keygen como mostrado abaixo
[email protected]:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|    =.+oo .      |
|   . B.B.= .     |
|  . o @oE +      |
|   . *oO * .     |
|    o++.S + .    |
|   .o +o . +     |
|    .o..o +      |
|     ..o o .     |
|       .o o.     |
+----[SHA256]-----+
[email protected]:~#

Como você deve ter notado, ele gerou uma chave pública na pasta .ssh. O caminho completo é /root/.ssh/id_rsa.pub

  Como faço para encontrar software ausente no Ubuntu?

Nota: certifique-se de que os arquivos de chave pública e privada não sejam legíveis para o mundo. Você pode listar os arquivos para verificá-los.

cd /root/.ssh
[email protected]:~# ls -l 
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa 
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub

Se você perceber que a permissão está errada, poderá alterá-la usando o comando chmod

Ex:

chmod 400 id_rsa
chmod 400 id_rsa.pub

Vamos copiar a chave pública para o host Ansible cujo endereço IP é 192.168.56.101

[email protected]:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

[email protected]:~/.ssh#

Você pode ver na saída acima, 1 chave foi adicionada com sucesso. Isso indica que a chave SSH foi trocada.

  Como alterar e criar um formato de número personalizado no Planilhas Google

Em seguida, configuraremos um cliente Ansible.

Configuração do cliente Ansible

Suponho que você já tenha seguido as etapas de instalação do Ansible no servidor cliente, conforme explicado nas etapas anteriores.

A configuração de cliente ou host nada mais é do que tornar o servidor Ansible ciente dos clientes. E, para isso:

  • Faça login no servidor Ansible
  • Vá para /etc/ansible
  • Adicione o seguinte no arquivo hosts usando seu editor favorito
[Client] 
node1 ansible_ssh_host=10.0.0.25

Teste Ansible

Se você seguiu todas as etapas corretamente, receberá uma mensagem de SUCESSO ao executar o comando abaixo no servidor ansible.

[email protected]:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    }, 
    "changed": false, 
    "ping": "pong"
}
[email protected]:~/.ssh#

Thea acima pinga para o cliente para testar a conectividade e confirmar se está bom ou não.

Conclusão

Espero que isso lhe dê uma idéia para começar com a instalação e brincar. Fique atento para mais tutoriais do Ansible ou também confira este curso Udemy Mastering Ansible.