Primeiros Passos com Ansible

Hoje iniciaremos uma série com três artigos explicando sobre a ferramenta de automação Ansible e como realizar a instalação de um ambiente Zabbix a partir da mesma.

O que é o Ansible?

O Ansible é uma ferramenta open source de automação e provisionamento de servidores e softwares que gerencia e configura a instalação de aplicações.

É uma ferramenta de fácil aprendizagem, não necessita da instalação de agentes nos servidores que serão gerenciados.

A comunicação entre o servidor Ansible e os servidores é realizada via SSH.

Depende apenas da instalação do pacote Python 2.4 ou superior, nativo na maioria das distribuições Linux.

Características do Ansible

  • Escrito em Python;
  • Não há necessidade de agente instalado nos hosts alvos;
  • Arquitetura Master to Nodes;
  • Utilização da linguagem YAML nos arquivos de configurações;
  • Utilização do SSH para conectar nos hosts alvos;
  • Utilização da linguagem Jinja2 para criação dos templates.

Estrutura Ansible

O Ansible é subdividido em vários componentes, são eles: Inventory, Modules, Tasks, Playbooks.

Inventory

É um arquivo onde é especificado os hosts que serão gerenciados pelo Ansible, podem conter os endereços IPs para cada host ou um grupos de hosts para uma melhor organização para seu deploy.

Modules

São os controladores de recursos, serviços, arquivos e pacotes dos hots remotos. Os modules fazem os trabalhos de processamento e automatização. Conseguindo iniciar um ou mais serviços,  instalar pacotes, criar ou alterar arquivos com base nos templates.

Tasks

As Tasks são as tarefas que serão realizadas nos servidores pelo host Ansible.

Playbooks

Lista ordenada das Tasks, salvas para que possam ser executadas em uma determinada ordem repetidamente nos servidores alvos. Os Playbooks podem conter variáveis e tarefas. São escritos em YAML e de fácil entendimento.

Instalação Ansible

Pré requisitos

Neste cenário iremos utilizar duas VMs com o Linux Centos7 instalado. Sendo uma o servidor Ansible a outra onde será o servidor do Zabbix.

Preparando ambiente e Instalação

1) Instalação do repositório Epel:

yum install epel-release -y

2) Instalação Ansible:

yum install ansible -y

3) Analisando diretório do Ansible:

ansible.cfg: Arquivo de configuração do ansible;

hosts: Arquivo do inventário de hosts.

roles: Pasta onde são criadas as estruturas para armazenamento das funções e Playbooks.

4) Editando o arquivo hosts e testando conexões

Primeiro vamos realizar um backup do arquivo de hosts original e criar um novo, e depois adicionar ao inventario o servidor Zabbix:

cp hosts hosts.BAK

vim hosts

Adicionar a seguinte linha ao final do arquivo:

10.0.0.240 ansible_ssh_user="root" ansible_ssh_pass="@zabbix10"

Utilizamos os comandos ansible_ssh_user=”root” ansible_ssh_pass=”@zabbix10, para realizar o acesso SSH ao servidor Zabbix, onde:

ansible_ssh_user : É o usuário que será utilizado para login SSH para executar as Tasks

ansible_ssh_pass: É  a senha do usuário

Também é possível realizar a autenticação utilizando uma chave SSH de dois pares. Assim no arquivo de hosts basta colocar o IP do servidor Zabbix:

ssh-keygen

Copiando chave gerada para o servidor Zabbix:

ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.240

Realizando validação de acesso da SSH key gerada. Na validação é necessário digitar a senha para acesso com o usuário informado:
ssh -i /root/.ssh/id_rsa.pub root@10.0.0.240

Teste de acesso SSH key:

ssh root@10.0.0.240

Testando conexão ao servidor Zabbix

ansible -m ping 10.0.0.240

Onde:

ansible -m ping: Estamos utilizando o module ping para realizar teste de conexão que foi obtido com sucesso.

No próximo artigo iremos criar um Playbook e verificar seu funcionamento.

 

 

 

 

 

 

 

 

 

Deixe uma resposta