Sobes.tech
Junior

Com que frequência teve de escrever ativamente funções e playbooks no Ansible para configuração?

sobes.tech IA

Resposta da IA

Bastante ativo. A principal tarefa era garantir uma configuração uniforme dos servidores e automatizar a implementação de aplicações.

Utilizavam-se tanto funções prontas do Ansible Galaxy como próprias, desenvolvidas especificamente para as necessidades dos projetos. Os playbooks eram usados para orquestrar tarefas, gerir dependências entre funções e definir a ordem de execução.

Exemplos de tarefas resolvidas com Ansible:

  • Instalação e configuração de servidores web (NGINX, Apache).
  • Configuração de bases de dados (PostgreSQL, MySQL).
  • Desdobramento de microserviços.
  • Gestão de utilizadores e grupos.
  • Configuração de firewalls.
  • Gestão de pacotes e dependências.
  • Construção e distribuição de distribuições de aplicações.

Ao escrever funções e playbooks, utilizava-se ativamente:

  • Sistema de templates Jinja2 para geração dinâmica de ficheiros de configuração.
  • Handlers para realizar ações após alterações na configuração.
  • Variáveis (group_vars, host_vars) para gerir parâmetros específicos.
  • Plugins de pesquisa para obter informações de várias fontes.
  • Condicionais para executar tarefas dependendo das condições.

Exemplo de estrutura de uma função simples:

// handlers/main.yml
---
# ficheiro handlers para my_role

// tasks/main.yml
---
# ficheiro de tarefas para my_role

Exemplo de um playbook simples:

// playbook.yml
---
- name: Configurar servidor web
  hosts: webservers
  become: yes # Executar tarefas com privilégios de superutilizador
  roles:
    - my_web_server_role

Trabalhava-se em conjunto com sistemas de controlo de versões, pull requests e revisão de código no Ansible. Também eram utilizados ferramentas para testar funções, como Molecule.

Componente do Ansible Utilização
Roles Organização e reutilização de código
Playbooks Orquestração de tarefas e funções
Variables Gestão declarativa de configuração
Handlers Resposta a alterações
Templates Jinja2 Geração dinâmica de ficheiros