Publicidade - Adsense

Utilizando o Ansible para provisionar ambientes


  • Moderador

    Depois de um tempo sem postar, venho falar de uma ferramenta que gosto muito: o Ansible. Para mostrar como funciona o Ansible, criaremos um blog na plataforma Ghost e esse será executado em um container Docker utilizando a imagem Ghost. Veremos como utilizar o Ansible e de quebra, como usá-lo juntamente com uma imagem Docker.

    Vamos aprender a utilizar o Ansible:

    Uma visão geral da estrutura de pastas do Ansible:

    Inventory:

    Na pasta hosts definimos o inventário das nossas máquinas que serão executados os playbooks (já veremos o que isso significa), no exemplo abaixo, temos um inventário chamado de blog-server, que contém apenas uma máquina inventariada.

    Poderíamos ter outros inventários no mesmo arquivo ou outras máquinas inventariadas. Bastaria adicionar o endereço, login e senha dos outros servidores.

    Ansible.cfg:

    No arquivo ansible.cfg definimos qual será o inventário padrão e ignoramos a pergunta relacionada ao desejo de adicionar o IP da máquina ao arquivo known_hosts.

    Playbooks:

    Podemos dizer que um playbook é uma receita, onde é definido o que será provisionado nos nossos inventários. Fazendo uma analogia, seria um passo a passo para uma receita de bolo.

    Nesse exemplo temos 3 passos a serem executadas, config-basic, docker, start-services. É importante dizer que esses passos são executados sequencialmente. Abaixo veremos o que cada um deles faz:

    Roles:

    Na pasta roles temos o seguinte formato:

    Roles
      config-basic
        files
        tasks
      docker
        files
        tasks
      start-services
        files
        tasks
    

    Dentro de cada role, existe a pasta files, onde ficam os arquivos que serão utilizados para configurar algo no provisionamento do ambiente. Dentro da pasta tasks ficam as tarefas que serão executadas para provisionar o ambiente desejado. Por padrão o Ansible sempre procura dentro da pasta tasks um arquivo main.yml.

    config-basic:

    Abaixo temos o nosso arquivo main.yml com tarefas para configurar: timezone, language, criação de um usuário, adicionar o usuário no grupo de sudo e instala o unzip na máquina provisionada.

    Docker:

    Dentro da pasta files temos um arquivo do docker-compose.yml para subir o blog que desejamos na máquina provisionada.

    Dentro da pasta tasks temos uma tarefa para adicionar o arquivo docker-compose.yml para dentro da home do usuário.

    Agora tempos a tarefa para instalar o Docker na máquina que irá ser provisionada.

    Próxima tarefa é para instalar o docker-compose na máquina provisionada.

    Agora o arquivo main.yml tem apenas os imports das tarefas que estão na mesma role, dessa forma, fica mais organizado do que adicionar todas as tarefas no mesmo arquivo.

    Start-services: E por último, vamos executar o comando para “startar” o serviço com o docker-compose.

    Para provisionar uma máquina e rodar o blog com o Ghost, basta executar o comando:

    ansible-playbook blog-server.yml
    

    Ao executar este comando será apresentada a imagem abaixo, quando finalizar o provisionamento do nosso blog.

    Ao acessar a máquina que provisionamos, podemos ver o nosso blog em execução, pronto para configurarmos.

    É isso pessoal, espero que tenham gostado desse post. Até o próximo.

    Referencias

    http://docs.ansible.com/ansible/playbooks_best_practices.html https://www.ansible.com/

    http://rafaelchiavegatto.com.br/2016/10/11/utilizando-o-ansible-para-provisionar-ambientes/


 

Publicidade - Adsense

status at

20
Online

2.8k
Usuários

1.7k
Tópicos

5.7k
Posts

});