Ansible

O Ansible é uma aplicação que automatiza a execução de tarefas em múltiplas máquinas virtuais (VM’s). Essa automatização permite configurar ambientes grandes e complexos de TI evitando possíveis falhas de execução ou digitação humana.

Instalação

Host de controle

Para instalação do Ansible as seguintes configurações são necessárias no host de controle.

1
2
3
4
5
6
7
8
9
sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
sudo apt-get install aptitude
sudo apt-get install python-apt
sudo apt-get install python3-apt
Hosts clientes
  • É necessário instalar os pacotes do python em todos os hots clientes, os demais pacotes listados são adicionais aos comandos que serão utilizados.
  • É necessário que o host de controle já possua acesso aos nós clientes, de preferência com troca de chaves criptográficas SSH entre eles.
1
2
3
4
5
6
sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-get install python-software-properties
sudo apt-get install aptitude
sudo apt-get install python-apt
sudo apt-get install python3-apt
Comandos ansible
1
2
ansible -m command -a "hostname" all
ansible -m ping all

Ambiente de controle

É recomendável ter um host de controle dentro do ambiente a ser monitorado. Dessa forma o acesso externo é feito a este host que controla os demais hosts “clientes” desejados.

Playbooks

São instruções de comandos a serem executados pelo host de controle nos clientes. Essas instruções são estruturadas em um arquivo .yml.

Módulos

São comandos pré-definidos são inseridos nos playbooks e que executam tarefas nos clientes. Tarefas comuns como envio de arquivos, atualização e instalação de pacotes podem ser feitos por módulos já existentes.

apt

Módulo de configuração de aplicações do Ansible.

Comandos úteis no linux:

  • Gerar chave privada e pública para o acesso SSH. ‘-t rsa’ para utilizar a versão 2 do algoritmo rsa.

$ ssh-keygen -t rsa

  • Instalar chave criptográfica para acesso via SSH

$ ssh-copy-id user@ip_host_client

  • Acesso SSH com transmissão de ambiente gráfico X11.

$ ssh -Y [email protected]

  • O rsync permite a sincronização de arquivos e pastas de forma rápida entre uma fonte e um destino. O seguinte comando é utilizado para sincronização da pasta Blog no PC com um servidor na nuvem.
1
$ rsync -avz --no-perms --rsync-path='sudo rsync' /home/user/Blog/source/_posts/ server.com.br:/home/user/Blog/source/_posts/
  • Configuração de IP estática no linux. Editar o arquivo /etc/network/interfaces
1
2
3
4
5
6
7
8
9
auto eth0
iface eth0 inet static
name Ethernet LAN card
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0
gateway 192.168.0.1
dns-nameservers 8.8.8.8 8.8.4.4

References