DevSecOps

17 mai, 2016

Conheça a nova ferramenta queridinha do pessoal de DevOps: Ansible

Publicidade

Olá, pessoal!

Hoje vamos falar sobre uma ferramenta que cada vez mais quem trabalha com Docker acaba utilizando, que é o Ansible. À 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 de DevOps hoje. Com ela é possível fazer o deploy de aplicações, provisionar servidores, automatizar tarefas, entre 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 um deles 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 da instalação de agents nos servidores no qual ele irá executar.

É possível utilizar Docker e Ansible em conjuntos para resolver duas situações: omplantação de containers e criação de imagens.

Na 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

Já na 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, pessoal, hoje fizemos apenas uma pequena introdução ao Ansible. Em nossos próximos artigos vamos trazer algo como Jenkins, Travis e também faremos um grande artigo mostrando como podemos criar um ambiente com Docker, Jenkins e Ansible.

Obrigado!

Veja o artigo usando como referência clicando neste link.