Ansible

ansible-exemplo

Ansible é uma ferramenta poderosa de provisionamento e automação dos processos de infraestrutura. A seguir detalharemos cada função e seu funcionamento.

Vantagens


1300 módulos com uma infinidade de recursos.

Apesar de um software jovem, Ansible tem uma grande variedade de funções e gama de recursos. Alguns softwares que ferramenta provisiona.
  • VMware
  • Windows
  • Linux
  • FreeBSD
  • Cisco Switchs e Roteadores
  • Amazon AWS
  • Google Cloud
  • Microsoft Azure
  • OpenStack
  • Storage e controladoras Raid
  • Ferramentas de monitoramento. Zabbix/Nagios

Lista de todos os modulos: https://docs.ansible.com/wiki/ansible/latest/modules/list_of_all_modules.html

Utilização de YAML e Jinja2 tornam processo de programação da ferramenta simples.

Ansible utiliza Playbooks para criar configurações de gerenciamento. Nele é definido processos de provisionamento e suas funções. Por usar YAML, a configuração se torna simples e de curta curva de aprendizagem.

Para casos mais elaborados que exijam if/else/elif podemos utilizar Jinja2, muito similar ao código Django, também é de fácil compreensão humana.

Consulte:

Agentless - não há necessidade de agente no servidor alvo (cliente). Agilizando o processo de implementação do provisionamento.

Suporte Enterprise para usuários do Red Hat Enterprise Linux.

Você pode contar com suporte Enterprise na sua empresa.

Red Hat não fornece suporte para Ansible Open Source, você precisa utilizar ferramentas proprietárias. Red Hat fornece Ansible Engine e Ansible Tower.

https://access.redhat.com/articles/2271461

Como funciona


Servidor de controle

O responsável pelo provisionamento de toda infraestrutura, onde instalamos e configuramos o Ansible.

Inventário

É arquivo de configuração onde definimos os hosts e grupos gerenciados.

Playbook

Arquivo de configurações das tarefas executadas pelo Ansible. O código é escrito em formato de serialização utilizando YAML, simples e legíveis por humanos, inspirado em linguagens como XML.

Exemplo simples de instalação e inicialização do serviço Postfix.

---
   - hosts: servera.lab.example.com
   tasks:
      - name: Instalando Postfix
      yum:
         name: postfix
         state: latest
      - name: Habilitando Serviço Postfix
      service:
         name: postfix
         state: restarted
         enabled: yes

Task

Usado no playbook. A task é o conjunto de tarefas e procedimentos de execução no servidor alvo.

Play

Quando tarefa executa com sucesso do início ao fim utilizando playbook, é dada nome de play.

Role

São arquivos predefinidos que ajudam, organizam e facilitam processo de provisionamento do playbook.

Facts

São variáveis globais que contém informações sobre o sistema, como endereço da rede, versão do sistema operacional, número de cpus e mais uma dezena de informações úteis.

Handler’s

São tarefas executadas via services (serviços) (stop, start e restarte). Geralmente utilizada no fim do arquivo de playbook, são utilizadas para reiniciar serviços que sofreram alterações em sua estrutura/código/configuração.

Módulos

Ansible possuí aproximadamente 1300 módulos, eles são responsáveis pelas tarefas executadas no servidor alvo. Descrição de alguns principais módulos.

Obs: Clique no módulo para acessar documentação traduzida por nós.

        apt - Manipula pacotes em sistemas Debian Like.
        ping - Checa se Ansible consegue alcanças o servidor alvo.
        get_url - Manipula URLs.
        lineinfile - Altera conteúdo em texto dentro de arquivos.
        blockinfile - Manipula block de texto dentro de arquivos.
        copy - Copia arquivos entre servidores locais e remotos.
        firewallD - Manipula regras de firewall utilizando o FirewallD
        pkgng - Manipula pacotes no FreeBSD
        replace - Substituí strings dentro de arquivos
        service - Manipula serviços do Systemd.
        shell - Executa comandos shell no servidor alvo
        uri - Interaje com webservices.
        yum - Manipula pacotes em sistemas Red Hat like