Ansible Roles

Ansible Roles

Roles provide a framework for fully independent, or interdependent collections of variables, tasks, files, templates, and modules.

In Ansible, the role is the primary mechanism for breaking a playbook into multiple files. This simplifies writing complex playbooks, and it makes them easier to reuse. The breaking of the playbook allows you to logically break the playbook into reusable components.

Each role is basically limited to a particular functionality or desired output, with all the necessary steps to provide that result either within that role itself or in other roles listed as dependencies.

Roles are not playbooks. Roles are small functionality that can be independently used but have to be used within playbooks. There is no way to directly execute a role. Roles have no explicit setting for which host the role will apply to.

Top-level playbooks are the bridge holding the hosts from your inventory file to roles that should be applied to those hosts.

Utilizing Roles in Playbook

This is the code of the playbook we have written for demo purposes. This code is of the playbook zippyops_orchestrate.yml. We have defined the hosts: tomcat-node and called the two roles – install-tomcat and start-tomcat.

The problem statement is that we have a war that we need to deploy on a machine via Ansible.

---

- hosts: tomcat-node

roles:

- {role: install-tomcat}

- {role: start-tomcat}

Breaking a Playbook into a Role

If not for the roles, the content of the main.yml of the respective role can be copied in the playbook YAML file. But to have modularity, roles were created.

Any logical entity which can be reused as a reusable function, that entity can be moved to a role. The example for this is shown above

Ran the command to run the playbook.

-vvv option for verbose output – verbose output

$ cd zippyops-playbook/

This is the command to run the playbook

$ sudo ansible-playbook -i hosts zippyops_orchestrate.yml –vvv




Relavant Blogs:

Ansible tower 

Ansible Variable 

Introduction to YAML 

Zabbix agent installation and configuration


Recent Comments

No comments

Leave a Comment