Sobes.tech
Middle

What are your skills and experience with local usage of Ansible Galaxy mechanics?

sobes.tech AI

Answer from AI

Experience with Ansible Galaxy includes:

  • Searching and using roles: Actively using ansible-galaxy search and ansible-galaxy install to find and install public roles from Galaxy Hub, which allows for quick addition of standard configurations and avoids "reinventing the wheel".
  • Developing custom roles: Creating own roles for specific tasks and reusable scenarios. The role structure complies with Galaxy requirements for potential publication (although for local use this is not always necessary).
  • Managing dependencies: Using the requirements.yml file to explicitly define role dependencies and their versions. This facilitates reproducibility and allows managing roles from git repositories.
    // 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
    
  • Local storage and versioning: Initially storing own roles in separate git repositories. For use in projects, cloning them or specifying the git address in requirements.yml.
  • Using collections: Working with collections to group related roles, plugins, and modules. This improves organization and modularity.
    // requirements.yml with collection
    - name: community.general
      version: 4.0.0
    
  • Offline mode: Familiar with using ansible-galaxy install in offline mode, after pre-downloading roles or collections.
  • Integration into CI/CD: Integrating role installation from requirements.yml into CI/CD pipelines for automatic environment setup.
    # Example in GitLab CI/CD .gitlab-ci.yml
    before_script:
      - ansible-galaxy install -r requirements.yml
    

Overall, local use of Ansible Galaxy mechanics significantly enhances the efficiency, modularity, and reproducibility of playbooks.