Ansible – O que é e para que serve

ANSIBLE LOVES THE REPETITIVE WORK YOUR PEOPLE HATE

Com essa frase começa a apresentação da ferramenta Ansible em seu próprio site. Bom, resumidamente o Ansible é um software que automatiza o provisionamento de software, gerenciamento de configuração e implantação de aplicativos. Ou seja, tudo aquilo que era feito repetidas vezes para configurar, atualizar um servidor ou serviço, pode ser automatizado com Ansible.

Bem vindo ao mundo da automação 🙂

Obviamente o Ansible não é a única ferramenta que pode fazer esse trabalho, temos outras ferramentas como Chef, Puppet, Saltstack. Todas elas tem suas características, qualidades e defeitos em particular, não realizar comparação entre essas ferramentas, vou somente dar a minha posição de o por que escolhi o Ansible.

Simplicidade e recursos:

Ansible foi desenvolvido em Python, então praticamente todas as versões de Linux terão suporte a mesma.
Mais de 1000 módulos para tudo quanto é tipo de áreas: banco de dados, monitoramento, nuvem e até para Windows.
Comandos “ad-hoc” diretamente para diversos recursos. Podemos criar playbooks usando o padrão YAML de fácil entendimento.
Possui módulos para Docker, Vmware, Proxmox, AWS, Openstack, Azure, gerenciamento de pacotes, enfim, são muitos módulos mesmo. Caso queira ver a lista completa, acesse este endereço.

Sem agentes:

Principal recurso que me fez optar em estudar o Ansible foi pelo fato de não necessitar o uso de agentes nos clientes, basta que o cliente tenha Python instalado e acesso via SSH ou Winrm para Windows.

Instalação Ansible:

A instalação segue o mesmo nível de simplicidade de seu uso, basta utilizar o gerenciador de pacotes de sua distribuição:

Ubuntu:

Centos, Fedora:

Execução: AD HOC vs Playbook

Essa são as duas maneiras que temos de executar nossos comandos no Ansible como dito anteriormente. Um arquivo muito importante para é o /etc/ansible/hosts onde a gente pode organizar as máquinas onde poderemos realizar as execuções, em breve escrevei um artigo com alguns macetes desse arquivo.

Vamos por a mão na massa executando nosso primeiro comando em localhost, somente para teste usaremos o módulo “ping” :

Sucesso, tivemos o retorno do ping do nosso localhost ;).

Bom no próximo artigo irei explicar como realizar execuções em algumas máquinas remotas ao mesmo tempo e alguns outro macetes. Até a próxima!

Rundeck – Automatizando suas tarefas

O que é esse tal de Rundeck

Falando a grosso modo Rundeck é um automatizador e agendador de tarefas. Obviamente que ele faz muito mais do que isso, ele consegue rodar essas tarefas tanto em Linux quanto em Windows. Consegue-se criar um workflow de tarefas, fazendo uma tarefa depender de outra ou conforme sua execução com sucesso ou insucesso.

Escrito em java e tem sua administração por uma interface web bem simples de ser usado e usa ssh para conexões com Linux e Winrm para conexões com Windows. As configurações ficam salvas em arquivos, geralmente XML, tanto dos jobs (trabalhos) quanto dos nodes (hosts).

Tem uma grande vantagem pois não precisa de agentes rodando nas máquinas clientes e se consegue fazer uma verdadeira orquestração de jobs, podendo escolher se os jobs vão rodar em paralelo ou sequência e assim por diante. Se consegue criar chaves de acesso, ou chaves com senhas dentro do próprio dashboard.
Existe uma integração com diversos serviços:

Uma das poucas desvantagens que achei até o momento, que algumas configurações como de usuários, nodes, terem que ser feitas pela linha de comando editando diretamente os arquivos.

Para usar o Rundeck, precisamos ter instalado o java (1.8) em nosso servidor. Realizei alguns testes no Centos.

E instalaremos o rundeck adicionando o repositório.

Após instalação ocorrer tudo bem, podemos conferir verificando a porta onde o serviço roda. Lembrando que caso tenha algum firewall ou bloqueio de portas o mesmo deve ser liberado.

Agora basta acessarmos o IP do nosso servidor seguido da porta. Ex: http://localhost:4440 e usar a famosa senha de admin/admin

Bom de momento vamos ficar somente com a instalação, nos próximos artigos vamos aprender a cadastrar nodes, executar comandos, scripts e demais coisas que essa baita ferramenta disponibiliza.

 

Site: http://rundeck.org/