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.

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](https://galaxy.ansible.com/)

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.

Links

  • [Ansible Collections list](https://github.com/ansible-collections)
  • [Ansible Collections Developer Guide](https://docs.ansible.com/ansible/latest/dev_guide/developing_collections.html)
  • [Ansible Collections migrating roles](https://docs.ansible.com/ansible/latest/dev_guide/migrating_roles.html)
  • [community.general collection](https://docs.ansible.com/ansible/latest/collections/community/general/)

## 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

``yaml

---

  • 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

`yaml

---

collections:

- name: community.general

source: https://galaxy.ansible.com

`

execution without collection installed

``bash

$ 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