Olá pessoal,

Hoje vamos falar sobre uma ferramenta que cada vez mais quem trabalha com Docker acaba utilizando que é o Ansible. A primeira vista muitas pessoas acham que ambas ferramentas fazem a mesma coisa, apresentando uma solução para gerenciamento de configurações através de meios diferentes. Na realidade a união das duas ferramentas torna o ambiente de implantações de softwares limpo, confiável e rápido.

Ansible

É uma ferramenta de automatização de tarefas semelhante a Puppet e Chef, porém muito mais poderosa e a queridinha do pessoal DevOps hoje. Com ela é possível fazer o deploy de aplicações, provisionando de servidores, automatizar tarefas, e outras funções.

O Ansible trabalha com arquivos YAML,  o principal arquivo de configuração é chamado de PLAYBOOK onde você coloca todas as tarefas que serão executadas “yum”,”mkdir”,”useradd” e no arquivo .ini você adiciona os servidores onde o Ansible irá executar esse PLAYBOOK. Cada Playbook possui roles que são as informações de provisionamento, após definir as roles você definirá em quais hosts essas roles serão executadas.

Dentro das roles existem as tasks, handlers, variaveis e templates:

       – Tasks: Tarefas de provisionamento que serão executadas

       – Handlers: Tarefas para manipular serviços e arquivos.

       – Templates: Arquivos para serem transformados em configurações dentro das máquinas.

       – Variaveis: Valores que são definidos para serem usados dentro das tasks, handlers e templates

O Ansible é uma ferramenta muito mais simples que seus concorrentes citados anteriormente, já que ele não precisa que seja instalado agents nos servidores na qual ele irá executar.

É possível utilizar Docker e Ansible em conjuntos para resolver duas situações: Implantação de Containers e Criação de Imagens.

Implantação de containers: É possível fazer toda a parte de orquestração, configuração e provisionamento com containers, sem precisar fazer a instalação de agents dentro dos containers

Criação de Imagens:

Exemplo de Playbook:

# Mysql service name for drupal application
mysqlservice: mysqld

# Mysql port for drupal application
mysql_port: 3306

# Database name for the drupal application
dbname: databasename

# Mysql Username for drupal application
dbuser: root  

Exemplo de Configuração do arquivo do Ansible:

[defaults]
inventory = /etc/ansible/inventory
host_key_checking = False
priva_key_file = ~/.sh/id_rsa
callback_plugins   = /opt/ansible-plugins/callbacks
connection_plugins = /opt/ansible-plugins/connections

Então tá pessoal, hoje fizemos apenas uma pequena introdução ao Ansible, em nossos próximos posts estaremos trazendo algo como Jenkins, Travis e também faremos um grande post mostrando como podemos criar um ambiente com Docker, Jenkins e Ansible. Obrigado

Referência: http://docs.ansible.com/ansible/playbooks_intro.html e http://www.ibm.com/developerworks/br/cloud/library/cl-provision-docker-containers-ansible/

Trabalha em uma Startup com foco em Plataforma como Serviço (PaaS), é especialista em Cloud Computing e Conteinerização, desenvolve todo dia uma nova maneira de resolver problemas e criar coisas novas.
  • André Felipe Dias

    A ideia do artigo é boa, mas ele se mostrou muito curto e superficial. A parte em que eu esperava que mostrasse o Docker e o Ansible em conjunto nem apareceu.

  • Oi André,
    Esse é apenas um post introdutório, para conhecer a ferramenta e como ela trabalha, estamos preparando uma série de posts mais avançados integrando Ansible, Docker e outras ferramentas DevOps.

  • marcelokalib

    Tive a mesma decepcao que voce.. Acho que o erro nao foi do artigo, mas da chamada dele em alguns sites, como o BR-Linux. Eu vim aqui atraves de la: “Com a ascensão do Docker ficou muito mais fácil provisionar infra-estrutura para as equipes, com o Ansible é possível deixar essa tarefa cada vez mais rápida e claro mais segura de ser executada, pois você pode criar padrões para o deploy de seu ambiente, garantindo assim maior eficiência para o processo. Veja nesse post como você pode utilizar essas duas ferramentas em conjunto.” A chamada deu a entender que seria apresentado o trabalho das duas em conjunto, conforme dito no final da chamada. Acho que o titulo usado aqui mesmo ficou mais justo para o post: “Ansible”.
    No mais, parabens pelo artigo.

  • Oi Marcelo,
    Realmente, deixou um pouco a desejar, mas compensaremos, pode deixar!

  • ivanelson

    O post não é digno de opinião ainda, vou aguardar a continuação.

  • iNhé

  • juliano cesar ribeiro

    Muito bom o post, já saiu o post de jenkins com ansible e docker? #animadíssimo para praticar aqui!

  • Olá @julianocesarribeiro:disqus desculpe pela demora,

    Estamos trabalhando em alguns posts sobre a versão 1.13, e após isso iremos realizar mais alguns posts sobre a sua demanda.

    Um grande abraço!