Ansible Galaxy
- Repository of Reusable Ansible Artifacts
- Lets do a simple expermient of installing of installing nodejs using ansible-galaxy reusable assets.
- Reusability is provided by Ansible Roles.
- Now navigate to ansible galaxy and search for node js and select any role

- Install role using ansible-galaxy command
ansible-galaxy install geerlingguy.nodejs
- Now write a simple playbook to use this role
---
- hosts: all
become: yes
roles:
- geerlingguy.nodejs
ansible-playbook node.yaml --syntax-check
ansible-playbook node.yaml
- Now verify whether the node is installed or not
node --version
npm --version
- DevOps Responsibilities:
- You should know how to use community roles (ansible-galaxy)
- You should know how to create custom roles
Reusable Assests in Ansible
- Refer Here for the official documentation
- Experiment:
- Write a playbook to install git, nano and tree
---
- hosts: all
become: yes
vars:
packages:
- git
- tree
- nano
- elinks
tasks:
- name: install packages
package:
name: "{{ item }}"
state: present
loop: "{{ packages }}"
- Write a playbook to install apache2
---
- hosts: all
become: yes
tasks:
- name: install apache
package:
name: apache2
state: present
notify:
- restart apache
handlers:
- name: restart apache
service:
name: apache2
enabled: yes
state: restarted
- Now while installing apache, you are asked to install utilites (git, nano, tree, elinks)
- Possible Solution 1: Use ansible-playbook to execute util.yaml and then apache.yaml
- Possible Solution 2: Use import or include
---
- import_playbook: util.yaml
- hosts: all
become: yes
tasks:
- name: install apache
package:
name: apache2
state: present
notify:
- restart apache
handlers:
- name: restart apache
service:
name: apache2
enabled: yes
state: restarted
* Possible Solution 3: Creating a role
Ansible Roles:
- Refer Here for official docs
- Lets create a reusable role for tomcat8. The tomcat8 playbook is already created Refer Here
- Now create a tomcat8 role by using the following command
ansible-galaxy role init tomcat8
- Now try to create a ansible role for tomcat8 by copying the necessary contents in necessary yaml files.
Like this:
Like Loading...