Ansible é um usado para gerenciar e administrar múltiplos servidores a partir de um computador central. É uma ferramenta de gerenciamento de servidores. Ansible não precisa de nenhuma configuração no lado do servidor como Chef ou Puppet. Basta instalar o Ansible no seu computador e gerenciar ou administrar os servidores via SSH. É muito simples e fácil de usar. Neste artigo, vou mostrar-lhe como instalar e usar o Ansible no CentOS 8. Então, vamos começar.

Installing Ansible:

Ansible está disponível no repositório EPEL do CentOS 8. Assim, você pode facilmente instalar o Ansible no CentOS 8.

Primeiro, atualize o cache do repositório de pacotes DNF com o seguinte comando:

$ sudo dnf makecache

Agora, para habilitar o repositório EPEL, instale o pacote epel-release com o seguinte comando:

$ sudo dnf install epel-release

Para confirmar a instalação, pressione Y e depois pressione <Enter>.

pacoteepel-release deve ser instalado e o repositório EPEL deve ser habilitado.

Agora, atualize o cache do repositório de pacotes DNF novamente com o seguinte comando:

$ sudo dnf makecache

Agora, instale o Ansible com o seguinte comando:

$ sudo dnf install ansible

Para confirmar a instalação, pressione Y e depois pressione <Enter>.

DNF deve começar a baixar todos os pacotes necessários da Internet.

>

Você pode ser solicitado a aceitar a chave GPG do repositório EPEL. Pressione Y e depois pressione <Enter> para aceitá-la.

DNF deve começar a instalar todos os pacotes baixados.

Neste ponto, Ansible deve ser instalado.

Agora, execute o seguinte comando:

$ ansible –version

Como você pode ver, estou executando Ansible 2.9.3 e está funcionando muito bem.

Configurando servidores para Ansible:

Para gerenciar ou administrar servidores com Ansible, você deve ter um servidor SSH instalado e rodando nos servidores. Os servidores com porta SSH devem estar abertos e os servidores devem estar acessíveis a partir do host do Ansible. Esse é o único requisito para usar Ansible.

Neste artigo, vou usar 4 máquinas virtuais (VMs) (2 VMs Ubuntu Server 18.04 LTS e 2 VMs Debian 10) para demonstrar o básico do gerenciamento e administração de servidores Ansible.

As 4 VMs são:

linuxhint-f1a46 – 192.168.20.161
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41- 192.168.20.170

Pode usar os endereços IP dos servidores para gerenciá-los ou administrá-los com Ansible. Você também pode usar os nomes DNS dos servidores.

Neste artigo, usarei o arquivo /etc/hosts para a resolução DNS dos endereços IP das VMs.

Se você quiser seguir, abra seu arquivo /etc/hosts com o editor de texto vi da seguinte forma:

$ sudo vi /etc/hosts

Agora, adicione as linhas como marcadas na captura de tela abaixo e salve o arquivo.

Agora, gere uma chave SSH no seu CentOS 8 Host possível da seguinte forma:

$ ssh-keygen

Pressione <Enter>.

>Pressione <Enter>.

>

Pressione <Enter>.

>

A chave SSH deve ser gerada.

>

Agora, você tem que carregar a chave SSH para todos os servidores que você quer gerenciar com Ansible.

>

Para copiar a chave SSH para o vm1.linuxhint.servidor local, execute o seguinte comando:

$ ssh-copy-id [email protected]

Now, digite yes e depois pressione <Enter>.

Now, digite a senha de login da vm1.linuxhint.local VM e pressione <Enter>.

A tecla SSH deve ser copiada.

Faça o mesmo para o servidor vm2.linuxhint.local, vm3.linuxhint.local e vm4.linuxhint.local.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

>

Após ter copiado a chave SSH para as VMs, você deve ser capaz de SSH nele sem nenhuma senha, como você pode ver na captura de tela abaixo.

Agora, execute o seguinte comando em cada servidor para permitir o acesso sudo sem senha para o usuário de login. Isto é necessário para Ansible para executar qualquer comando root.

$ echo “$(whoami) ALL=(ALL) NOPASSWD:ALL”. | sudo tee /etc/sudoers.d/$(whoami)

Todos os servidores estão agora prontos para serem configurados ou geridos a partir do Ansible.

Using Ansible:

Ansible mantém uma lista de todos os hosts que gere num ficheiro chamado ficheiro de inventário. Ansible inventory file é apenas um simples ficheiro de texto.

Vamos criar um novo directório de projectos Ansible ~/ansible/ primeiro, depois vamos criar o nosso ficheiro de inventário.

$ mkdir ~/ansible

Agora, navegue para o diretório ~/ansible.

$ cd ~/ansible

Agora, crie um arquivo de inventário Ansible como se segue. Você pode chamar este arquivo de qualquer coisa. Vou chamá-lo de hosts.

$ vi hosts

>

Agora, você pode adicionar seus servidores da seguinte forma. Aqui, a opção ansible_user é usada para definir o usuário que o Ansible usará para executar comandos nesses servidores. Normalmente é o usuário de login do servidor.

Pode também misturar endereços IP e nomes DNS dos servidores no arquivo de inventário.

Pode também agrupar servidores. Aqui, eu tenho 2 grupos, webserver e dbserver.

No grupo webserver, eu adicionei servidores vm1 e vm2. No grupo dbserver, eu adicionei servidores vm3 e vm4.

Após o arquivo de inventário ser criado, você pode usar o arquivo de inventário usando a opção -i do Ansible.

Você pode listar todos os hosts do arquivo de inventário da seguinte forma:

$ ansible -i hosts –list-hosts all

Você pode verificar se todos os hosts estão ativos da seguinte forma:

$ ansible -i hosts –list-hosts -m ping all

>

>>

Como pode ver, todos os hosts estão activos.

Você também pode pingar todos os hospedeiros em um único grupo.

$ ansible -i hosts –list-hosts -m ping webserver

>

Você pode executar comandos shell usando Ansible como a seguir:

$ ansible -i hosts -m shell -m -a ‘command’ <all|groupName>

Você também pode executar comandos shell (com privilégios sudo) como segue.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘command’ &lt;all
|groupName&gt;

Por exemplo, você pode atualizar o cache do repositório de pacotes APT nos hosts do grupo do servidor web usando Ansible como a seguir:

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘apt update’ webserver

Como você pode ver, o cache do repositório de pacotes APT é atualizado para todos os hosts no grupo do servidor web.

Tentemos instalar o servidor web Apache 2 em todos os hosts do grupo de servidores web.

>

$ ansible -i hosts -b –become-method=sudo -m shell -a
‘apt install -y apache2’ webserver

Apache webserver deve ser instalado em todos os hosts do grupo webserver.

Como você pode ver, o servidor web Apache está trabalhando em todos os hosts do grupo do servidor web.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‘curl -sI
http://localhost’ webserver

>

Da mesma forma, você pode executar qualquer comando em todos os hosts do grupo dbserver.

>

$ ansible -i hosts -m shell -a ‘lsb_release -a’ dbserver

>

>

>

Você também pode usar o Ansible Playbook para gerenciar seus servidores mais facilmente. Ansible Playbook está fora do escopo deste artigo. Leia a documentação do Ansible Playbook para mais informações sobre Ansible Playbook.

Obrigado por ler este artigo.

Deixe uma resposta

O seu endereço de email não será publicado.