Sobes.tech
Middle

Quais são as suas habilidades e experiência com o uso local da mecânica do Ansible Galaxy?

sobes.tech IA

Resposta da IA

A experiência com Ansible Galaxy inclui:

  • Procura e utilização de roles: Uso ativamente ansible-galaxy search e ansible-galaxy install para procurar e instalar roles públicos do Galaxy Hub, o que permite adicionar configurações padrão rapidamente e evitar reinventar a roda.
  • Desenvolvimento de roles próprios: Crio roles próprios para tarefas específicas e cenários reutilizáveis. A estrutura dos roles atende aos requisitos do Galaxy para uma possível publicação (embora para uso local nem sempre seja obrigatório).
  • Gestão de dependências: Uso o ficheiro requirements.yml para definir explicitamente as dependências dos roles e as suas versões. Isto facilita a reprodutibilidade e permite gerir roles a partir de repositórios git.
// requirements.yml
- src: geezer.docker
  version: 2.2.0
- src: git+https://github.com/my-org/my-custom-role.git
  version: main
  name: custom_role
  • Armazenamento local e controlo de versões: Inicialmente guardo os meus próprios roles em repositórios git separados. Para os usar em projetos, faço clone ou indico o endereço git em requirements.yml.
  • Utilização de coleções: Trabalho com coleções para agrupar roles relacionados, plugins e módulos. Isto melhora a organização e a modularidade.
// requirements.yml com coleção
- name: community.general
  version: 4.0.0
  • Modo offline: Conheço o uso de ansible-galaxy install em modo offline, descarregando previamente roles ou coleções.
  • Integração em CI/CD: Integro a instalação de roles a partir de requirements.yml em pipelines de CI/CD para configurar automaticamente os ambientes.
# Exemplo no GitLab CI/CD .gitlab-ci.yml
before_script:
  - ansible-galaxy install -r requirements.yml

No geral, o uso local da mecânica do Ansible Galaxy aumenta significativamente a eficiência, modularidade e reprodutibilidade dos playbooks.