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 | sudo apt-get update |
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 | sudo apt-get update |
Comandos ansible
1 | ansible -m command -a "hostname" 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 | auto eth0 |
References
- Ansible: https://docs.ansible.com/
- Chaves SSH: https://www.vivaolinux.com.br/dica/Configurando-SSH-sem-senha-no-Ubuntu-ssh-copy-id # https://www.hardware.com.br/tutoriais/dominando-ssh/pagina5.hhtml
- Markdown: https://guides.github.com/pdfs/markdown-cheatsheet-online.pdf
- Rsync: https://www.tecmint.com/rsync-local-remote-file-synchronization-commands/ # http://www.f15ijp.com/2010/09/executing-rsync-as-sudo/