Oddo - Complexus

Ansible na prática – instalação e configuração #1

Provisionando um laboratório para estudar o Ansible e outras coisas

Por: Adelmo da Silva – consultor de sistemas

Bom, eu já mostrei para você o que é o Ansible e a sua importância na área de T.I, as inúmeras vantagens e a sua base, o Inventário e alguns exemplos do que ele pode fazer. Acredito que já tenha tido uma ideia do que o Ansible é e o que pode fazer. Confira os artigos anteriores nos links abaixo:

  1. Automação é o caminho e o Ansible, seu guia;
  2. Ansible: o fim das configurações manuais em servidores remotos;
  3. Ansible, o poliglota;
  4. Inventário, as páginas amarelas do Ansible.

Depois de mostrar a você tudo isso, agora vamos avançar. Vamos colocar a mão na massa. Este é o primeiro artigo/tutorial sobre Ansible na Prática. Será uma série de artigos onde irei replicar a vida no dia-a-dia de um profissional da área de T.I., como actualizações, colecta de informações, explicação de comandos, entre outros recursos e configurações de nosso amando Ansible. É importante lembrar: todos os artigos que irei publicar neste série “Ansible na Prática” será baseado no Ansible instalado em um servidor Linux, seja CentOS, Oracle Linux, Ubuntu, etc.

Então, chega de blá blá blá e vamos para a parte mais legal… a Prática. Pois o quanto mais você dominar o Ansible, mais tempo para aquele cafezinho você vai ter… hummm coisa boa!

Comptia CySA+ - Multirede

Instalando no Oracle Linux e Ubuntu

Bora lá!

Para esse, e os futuros artigos, vou utilizar máquinas virtuais (VM’s) com as seguintes configurações:

  • Sistema Operacional: Oracle Linux 7.9
  • CPU: 6
  • RAM: 4GB

Estou utilizando o Vagrant para criar estas VM’s. Mas você pode utilizar a que desejar: VirtualBox, Docker, VMWare, Boxes, etc. Neste artigo, em específico, usarei apenas o Oracle Linux. Nos próximos vamos utilizar outros sistemas. Mas na instalação irei contemplar o Ubuntu também.

Comptia CySA+ - Multirede

Sempre é bom deixar o sistema atualizado antes de se instalar qualquer aplicação ou serviço. Neste caso, vamos atualizar nossos sistemas:

Oracle Linux 7.9:

yum update -y && yum upgrade -y

 Ubuntu:

Comptia CySA+ - Multirede

apt update -y && apt upgrade -y

Agora, precisamos instalar um repositório chamado EPEL (Extra Packages for Enterprise Linux) para obter o pacote Ansible:

Oracle Linux 7.9:

yum install epel-release -y

Comptia CySA+ - Multirede

 Ubuntu:

O repositório EPEL é específico para distribuições baseadas no Red Hat, como o Oracle Linux. No Ubuntu, não é necessário instalar o EPEL. No Ubuntu, o Ansible pode ser instalado directamente dos repositórios oficiais.

Agora é possível instalar nosso amado Ansible.

Oracle Linux 7.9:

Comptia CySA+ - Multirede

yum install ansible

ansible –version

Ubuntu:

apt install ansible

Comptia CySA+ - Multirede

ansible –version

 

Versão do Ansible usado para este artigo:

[vagrant@orc-ansible ~]$ ansible –version

Comptia CySA+ - Multirede

ansible 2.9.27

  config file = /etc/ansible/ansible.cfg

  configured module search path = [u’/home/vagrant/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’]

  ansible python module location = /usr/lib/python2.7/site-packages/ansible

Comptia CySA+ - Multirede

  executable location = /usr/bin/ansible

  python version = 2.7.5 (default, Jul  1 2022, 08:35:16) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44.0.3)]

 

Além dos meios tradicionais através dos gerenciadores ‘apt’ e ‘yum’, é possível instalar o Ansible através  do ‘pip’ (gerenciador de pacotes do Python), tanto no Oracle Linux quanto no Ubuntu. Para isso basta instalar o pacote

Comptia CySA+ - Multirede

Oracle Linux 7.9:

yum install epel-release -y

yum install python3-pip -y

pip3 install ansible

Comptia CySA+ - Multirede

 

Caso o yum não localize o pacote epel-release, utilize os comandos abaixo:

 

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Comptia CySA+ - Multirede

yum install -y epel-release-latest-7.noarch.rpm

 

Ubuntu:

apt install python3-pip

Comptia CySA+ - Multirede

pip3 install ansible

Feito! Já temos nosso querido Ansible instalado e pronto para ser usado. Mas antes disso, vamos verificar as configurações principais desse rapaz.

Verificando as configurações padrão

O Ansible possui vários arquivos de configuração que podem ser utilizados para personalizar o comportamento do Ansible. O directório padrão do Ansible fica em ‘/etc/ansible’ e é monde estão os dois principais arquivos de configuração:

Comptia CySA+ - Multirede
  • cfg: Este é o arquivo principal de configuração do Ansible. Ele pode ser usado para definir configurações globais que afectam todos os playbooks e comandos do Ansible. O arquivo ansible.cfg pode ser colocado no diretório de trabalho actual, no diretório home do usuário (~/.ansible.cfg) ou em /etc/ansible/ansible.cfg para configurações globais de sistema. Mas, neste artigo, vamos manter o local padrão.

 

  • inventory: O arquivo de inventário, por padrão chamado de hosts, define os hosts em que o Ansible vai executar os playbooks e comandos. O arquivo de inventário permite agrupar hosts em grupos, definir variáveis específicas para hosts ou grupos, e muito mais. Por padrão, o arquivo de inventário pode ser encontrado em /etc/ansible/hosts.

 

  • roles: são uma maneira de organizar e reutilizar código. Elas permitem que você agrupe tarefas, variáveis, handlers e outros elementos relacionados em uma estrutura modular. Uma role pode ser usada para definir a configuração e a funcionalidade de um componente específico do sistema, como um serviço, um aplicativo ou um conjunto de tarefas relacionadas. Dentro do diretório roles, você pode criar subdirectórios para cada role que você deseja criar. Por exemplo, você pode ter um diretório chamado webserver para uma role que configura um servidor web, e dentro desse diretório, você teria a estrutura de arquivos da role em si. Mas veremos isso em artigos futuros.

Preparando os hosts para controlo do Ansible

Você já tem o poderoso Ansible instalado. Já sabe onde ficam as configurações base dele. Agora, vamos preparar os hosts, ou seja, os servidores que serão controlados pelo Ansible.

Comptia CySA+ - Multirede

O Ansible se conecta via ssh aos hosts para que seja executados os comandos, seja Ad-Hoc ou Playbooks:

 

Ansible na prática - instalação e configuração #1

Fluxo de Conexão do Ansible. Fonte: Packet Warrior – Créditos: D.R

Comptia CySA+ - Multirede

Para estabelecer uma relação de confiança entre o Ansible e um host, você deve utilizar a autenticação por chave SSH. Isso permite que o Ansible se conecte ao host de forma segura e execute comandos remotamente. É essencial que o usuário que está no servidor Ansible seja o mesmo em todos os hosts da rede Para isso, vamos seguir os passos abaixo

I – Gerando chaves SSH com o ssh-keygen:

[vagrant@orc-ansible ~]$ ssh-keygen

 

Comptia CySA+ - Multirede

Generating public/private rsa key pair.

Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Comptia CySA+ - Multirede

Your identification has been saved in /home/vagrant/.ssh/id_rsa.

Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:4l/8CEnX4vmF9IniX/BLl+VmNzNRDH3qEBV4aboDxJ0 vagrant@orc-ansible.test

Comptia CySA+ - Multirede

The key’s randomart image is:

+—[RSA 2048]—-+

|         . . +++ |

|          o E +oo|

Comptia CySA+ - Multirede

|         .   = .+|

|          ..o . .|

|      . S o.++ ..|

|     . o = +o*.o+|

Comptia CySA+ - Multirede

|      . o * o.B=*|

|       . + = + ==|

|        . o.+ .  |

+—-[SHA256]—–+

Comptia CySA+ - Multirede

 

II – Copie a chave pública para o host remoto usando o ssh-copy-id:

[vagrant@orc-ansible ~]$ ssh-copy-id vagrant@192.168.100.4

 

Comptia CySA+ - Multirede

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “/home/vagrant/.ssh/id_rsa.pub”

The authenticity of host ‘192.168.100.4 (192.168.100.4)’ can’t be established.

ECDSA key fingerprint is SHA256:2dOBSIUd6MBkLoqN/hrBfGCwsjZqSjMgB0neup/ali4.

ECDSA key fingerprint is MD5:f8:e1:93:fa:b9:b0:b7:e3:2f:2b:fd:9c:10:f5:72:d1.

Comptia CySA+ - Multirede

 

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

Comptia CySA+ - Multirede

vagrant@192.168.100.4’s password:

 

Number of key(s) added: 1

 

Comptia CySA+ - Multirede

Now try logging into the machine, with:   “ssh ‘vagrant@192.168.100.4′”

and check to make sure that only the key(s) you wanted were added.

Veja que temos quatro estágios, destacados em negrito:

  • ssh-copy-id vagrant@192.168.100.4: Inicia a conexão e a cópia da chave ssh para o hosts.
  • Are you sure you want to continue connecting (yes/no)? Yes: ele pergunta se deseja continuar com a conexão
  • vagrant@192.168.100.4’s password: é solicitado a senha do user, neste caso o user vagrant para validar a conexão.
  • Number of key(s) added: 1: Confirmação de hosts adicionados á lista de confiança.

 

Comptia CySA+ - Multirede

III – Teste a conexão SSH: para testar a conexão de confiança entre o ansible e o host, entre com o comando:

[vagrant@orc-ansible ~]$ ssh 192.168.100.4 à início da conexão

[vagrant@orc-app1 ~]$ à acesso confirmado. Veja que o hostname, depois do @, está com o do host orc-app1.

Isso deverá ser feito para todos os hosts da rede.

Comptia CySA+ - Multirede

 

Testes Iniciais

Agora vamos aos testes que dão gosto depois desses passos iniciais. Vamos aos testes de conexão. Mas, antes, precisamos preparar nosso inventário, lembra? Lembra do meu artigo sobre o Inventário: Inventário, as páginas amarelas do Ansible?

Então, vamos entrar no arquivo padrão de inventário do ansible em ‘/etc/ansible/hosts’ e vamos definir os grupos e ip’s:

[server-apps]

Comptia CySA+ - Multirede

192.168.100.4

192.168.100.5

[server-db]

192.168.100.6

Comptia CySA+ - Multirede

Este é o meu inventário. Você deverá colocar aqui os ip’s dos seus servidores.

Agora que nosso inventário está configurado, vamos testar as respostas dos servidores por meio do módulo PING. Neste primeiro teste vou dar ping para todos os hosts do inventário:

[vagrant@orc-ansible ~]$ ansible all -m ping

192.168.100.6 | SUCCESS => {

Comptia CySA+ - Multirede

    “ansible_facts”: {

        “discovered_interpreter_python”: “/usr/bin/python”

    },

    “changed”: false,

Comptia CySA+ - Multirede

    “ping”: “pong”

}

192.168.10.5 | SUCCESS => {

    “ansible_facts”: {

Comptia CySA+ - Multirede

        “discovered_interpreter_python”: “/usr/bin/python”

    },

    “changed”: false,

    “ping”: “pong”

Comptia CySA+ - Multirede

}

192.168.100.4 | SUCCESS => {

    “ansible_facts”: {

        “discovered_interpreter_python”: “/usr/bin/python”

Comptia CySA+ - Multirede

    },

    “changed”: false,

    “ping”: “pong”

}

Comptia CySA+ - Multirede

Todos responderam ao ping. Isso pode ser comprovado pela reposta “ping”: “pong” ao final de cada host.

Para testar apenas um grupo, trocamos o “all” pelo nome do grupo, como por exemplo:

[vagrant@orc-ansible ~]$ ansible server-apps  -m ping

Os hosts 192.168.100.4 e 192.168.100.5 irão responder ao ping.

Comptia CySA+ - Multirede

Pronto! O Ansible já está no controle dos seus hosts.

Vamos rodar mais dois comandos simples para que você veja o Ansible em ação. Vamos atualizar apenas o server DB utilizando o módulo SHELL:

[vagrant@orc-ansible ~]$ ansible server-db -m shell -a “sudo yum update -y”

Comptia CySA+ - Multirede

Updated:

  cronie.x86_64 0:1.4.11-25.el7_9

  cronie-anacron.x86_64 0:1.4.11-25.el7_9

  iwl100-firmware.noarch 999:39.31.5.1-999.18.el7

Comptia CySA+ - Multirede

  iwl1000-firmware.noarch 999:39.31.5.1-999.18.el7

  iwl105-firmware.noarch 999:18.168.6.1-999.18.el7

  iwl135-firmware.noarch 999:18.168.6.1-999.18.el7

  iwl2000-firmware.noarch 999:18.168.6.1-999.18.el7

Comptia CySA+ - Multirede

  iwl2030-firmware.noarch 999:18.168.6.1-999.18.el7

  iwl3160-firmware.noarch 999:22.0.7.0-999.18.el7

  iwl3945-firmware.noarch 999:15.32.2.9-999.18.el7

  iwl4965-firmware.noarch 999:228.61.2.24-999.18.el7

Comptia CySA+ - Multirede

  iwl5000-firmware.noarch 999:8.83.5.1_1-999.18.el7

  iwl5150-firmware.noarch 999:8.24.2.2-999.18.el7

  iwl6000-firmware.noarch 999:9.221.4.1-999.18.el7

  iwl6000g2a-firmware.noarch 999:17.168.5.3-999.18.el7

Comptia CySA+ - Multirede

  iwl6000g2b-firmware.noarch 999:17.168.5.2-999.18.el7

  iwl6050-firmware.noarch 999:41.28.5.1-999.18.el7

  iwl7260-firmware.noarch 999:22.0.7.0-999.18.el7

  iwlax2xx-firmware.noarch 999:20230315-999.18.el7

Comptia CySA+ - Multirede

  kernel-abi-whitelists.noarch 0:3.10.0-1160.90.1.0.1.el7

  kernel-headers.x86_64 0:3.10.0-1160.90.1.0.1.el7

  kernel-tools.x86_64 0:3.10.0-1160.90.1.0.1.el7

  kernel-tools-libs.x86_64 0:3.10.0-1160.90.1.0.1.el7

Comptia CySA+ - Multirede

  kexec-tools.x86_64 0:2.0.15-51.0.5.el7_9.3

  linux-firmware.noarch 999:20230315-999.18.gitc761dbe8.el7

  python-perf.x86_64 0:3.10.0-1160.90.1.0.1.el7

  rhn-check.x86_64 0:2.0.2-24.0.9.el7

Comptia CySA+ - Multirede

  rhn-client-tools.x86_64 0:2.0.2-24.0.9.el7

  rhn-setup.x86_64 0:2.0.2-24.0.9.el7

  rhnlib.noarch 0:2.5.65-8.0.5.el7

  rsyslog.x86_64 0:8.24.0-57.0.3.el7_9.3

Comptia CySA+ - Multirede

  tzdata.noarch 0:2023c-1.el7

Complete!

[vagrant@orc-ansible ~]$

Pronto. Já temos um servidor actualizado. Agora basta fazer nos outros ao meso tempo e poder tomar aquele cafezinho.

Comptia CySA+ - Multirede

Lembrando que este é o primeiro artigo da série Ansible na Prática. Até o próximo.

 

Partilhar artigo:

Versao3 - Cópia

Somos um portal de notícias, voltado às tecnologias de informação e inovação tecnológica. Informamos com Rigor, Objectividade e Imparcialidade. Primamos pela qualidade, oferecendo aos nossos leitores, a inclusão tecnológica e a literacia digital

+(244) 930747817

info@pti.ao | redaccao@pti.ao

Mais Lidas

Últimos Artigos

Desenvolvido Por SP Media