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.