Sobes.tech
Intern

O que é o Ansible?

sobes.tech IA

Resposta da IA

O Ansible é uma ferramenta de automação de infraestrutura de TI de código aberto e fácil de usar. É utilizado para configurar servidores, implementar aplicações e orquestrar tarefas.

Características principais:

  • Sem agente: Não requer instalação de agentes nos nós geridos. Utiliza SSH (ou WinRM para Windows).
  • Idempotente: As operações podem ser repetidas várias vezes sem alterar o estado final, se já tiver sido atingido.
  • Simplicidade: Utiliza YAML para escrever playbooks, tornando-os legíveis e compreensíveis.
  • Módulos: Vem com uma grande quantidade de módulos para realizar várias tarefas (instalação de pacotes, cópia de ficheiros, gestão de serviços, etc.).
  • Extensibilidade: É fácil criar os seus próprios módulos e plugins.

Componentes principais:

  • Nó de controlo: Servidor a partir do qual são executados comandos e playbooks do Ansible. Normalmente é Linux.
  • Nós geridos: Servidores ou dispositivos que gere com o Ansible.
  • Inventário: Ficheiro que descreve os seus nós geridos (endereços IP, nomes de host, grupos).
    [webservers]
    web1.exemplo.com
    web2.exemplo.com
    
    [databases]
    db1.exemplo.com
    
  • Módulos: Os módulos são unidades de código que realizam tarefas específicas nos nós geridos.
    - name: Instalar Nginx
      ansible.builtin.apt:
        name: nginx
        state: present
    
  • Tarefas: A tarefa é uma chamada a um módulo com parâmetros definidos. As tarefas são executadas sequencialmente.
  • Playbooks: Os playbooks são ficheiros YAML que contêm um conjunto de tarefas para alcançar um objetivo específico. Descrevem o estado desejado do sistema.
    ---
    - name: Configurar servidores web de produção
      hosts: webservers
      become: yes  # Executar tarefas com privilégios sudo
      tasks:
        - name: Instalar a última versão do Apache
          ansible.builtin.yum:
            name: httpd
            state: latest
        - name: Garantir que o Apache está em execução e ativado na inicialização
          ansible.builtin.service:
            name: httpd
            state: started
            enabled: yes
    
  • Roles: Os papéis reúnem tarefas, variáveis e modelos em estruturas reutilizáveis.

Aplicações:

  • Gestão de configuração.
  • Desdobramento de aplicações.
  • Provisionamento de infraestrutura (por exemplo, configuração de máquinas virtuais após a sua criação).
  • Orquestração de tarefas (execução sequencial de ações em diferentes nós).
  • Automação de operações rotineiras.