Skip to main content

Ansible Galaxy

Ansible Galaxy is a hub of community-developed Ansible roles that can be used to automate tasks. These roles are reusable and can be implemented in your playbooks to perform tasks such as installing packages, configuring services, and much more. This article will guide you on how to use Ansible Galaxy for your automation tasks.

What is an Ansible Role?

An Ansible role is a way of grouping tasks together into one cohesive unit. This can be particularly useful when you have tasks that need to be executed in a certain order, or when you want to reuse the same tasks across multiple playbooks.

Roles are structured in a specific directory structure. Here's a simple example:

my_role/
├── defaults/
│ └── main.yml
├── handlers/
│ └── main.yml
├── tasks/
│ └── main.yml
├── templates/
│ └── my_template.j2
└── vars/
└── main.yml

Using Ansible Galaxy

You can use Ansible Galaxy to either create a new role or download an existing role.

To create a new role, use the ansible-galaxy init command. Here's an example:

ansible-galaxy init server_setup

This command will create a directory named server_setup with subdirectories that follow the structure of an Ansible role.

To download an existing role, use the ansible-galaxy install command:

ansible-galaxy install username.role_name

Replace username.role_name with the name of the role you want to install.

Implementing a Role in a Playbook

Once you have a role (either one you've created or one you've downloaded), you can implement it in a playbook like so:

---
- hosts: web_servers
roles:
- role: server_setup

In this example, the server_setup role will be executed on the web_servers host group.

Conclusion

Ansible Galaxy is a powerful tool that enables you to leverage the work of the Ansible community. By using roles, you can make your Ansible playbooks more modular, reusable, and maintainable. Whether you're creating your own roles or using ones that others have created, Ansible Galaxy is an essential part of any Ansible user's toolkit.