AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

Ansible Galaxy Collections: Install, Use & requirements.yml Guide

By Luca Berton · Published 2024-01-01 · Category: installation

How to download and use Ansible Galaxy collections. Install with ansible-galaxy, create requirements.yml, manage collection dependencies.

Ansible Galaxy Collections: Install, Use & requirements.yml Guide

How to Download and Use Ansible Galaxy Collection with ansible-galaxy and requirements.yml?

I’m going to show you a live Playbook with some simple Ansible code. I’m Luca Berton and welcome to today’s episode of Ansible Pilot.

See also: Download and Use Ansible Galaxy Role - ansible-galaxy and requirements.yml

What is an Ansible Collection?

• distribution format for Ansible content • it contains the package and distributes playbooks, roles, modules, and plugins using collections • easy to download and share via Ansible Galaxy

An Ansible Collection is a distribution format for Ansible content. It solves one problem and contains all the relevant contains the package and distributes playbooks, roles, modules, and plugins. For Users, the Ansible Collection is easy to download and share via Ansible Galaxy. For Developers the Ansible Collection is easy to upload and share via Ansible Galaxy. Plus an Ansible Collection has a defined standard directory structure and format.

What is Ansible Galaxy?

Ansible Galaxy

The website is available at the URL https://galaxy.ansible.com/. The search engine, Tags, and Platform make it easy to find any content inside. I recommend you carefully evaluate the quality of content before using it in your system. Quality indicators are usually the quality assurance of code, the supported operating systems and platforms, the documentation, the release numbers, the presence of Changelog, the number of downloads, and the author or creator. Please notice that the website contains Ansible Roles and Ansible Collections. Today we’re focusing on Ansible Role content.

See also: Introducing the zabbix_add_host Ansible Role Simplifying Certificate Validation with Zabbix

Links

Ansible Collections listAnsible Collections Developer GuideAnsible Collections migrating rolescommunity.general collection

## Playbook

Let’s jump into a real-life How to Download and Use the Ansible Galaxy Collection community.general in a system with ansible-core installed.

code

• collection.yml
---
- name: modprobe module Playbook
  hosts: localhost
  become: true
  vars:
    module_name: "dummy"
    ansible_connection: local
  tasks:
    - name: load the module
      community.general.modprobe:
        name: "{{ module_name }}"
        state: present
• requirements.yml
---
collections:
  - name: community.general
    source: https://galaxy.ansible.com

execution without collection installed

$ ansible-playbook collection/collection.yml 
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'
ERROR! couldn't resolve module/action 'community.general.modprobe'. This often indicates a misspelling, missing collection, or incorrect module path.

The error appears to be in '/home/devops/collection/collection.yml': line 10, column 7, but may be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

tasks: - name: load the module ^ here $

download execution


$ ansible-galaxy install -r collection/requirements.yml 
Starting galaxy collection install process
Process install dependency map
Starting collection install process
Downloading https://galaxy.ansible.com/download/community-general-4.5.0.tar.gz to /home/devops/.ansible/tmp/ansible-local-24543cs6dck7/tmpaccd0umv/community-general-4.5.0-5msjuuoa
Installing 'community.general:4.5.0' to '/home/devops/.ansible/collections/ansible_collections/community/general'
community.general:4.5.0 was installed successfully

list installed collection

$ ansible-galaxy collection list

# /home/devops/.ansible/collections/ansible_collections Collection Version ----------------- ------- community.general 4.5.0 $

execution with collection installed

$ ansible-playbook collection/collection.yml 
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit
localhost does not match 'all'

PLAY [modprobe module Playbook] ***********************************************************************

TASK [Gathering Facts] **************************************************************************** ok: [localhost]

TASK [load the module] **************************************************************************** changed: [localhost]

PLAY RECAP **************************************************************************************** localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

$

code with ❤️ in GitHub

Conclusion

Now you know how to Download and Use Ansible Galaxy Collection community.general with Ansible.

See also: Ansible Fix 'Role Not Found' Error: Path & Resolution Guide

Related Articles

collection versioning with Ansible GalaxyAnsible privilege escalation patternsstructuring playbooks with Ansible roles

Category: installation

Watch the video: Ansible Galaxy Collections: Install, Use & requirements.yml Guide — Video Tutorial

Browse all Ansible tutorials · AnsiblePilot Home