# Ansible Roles
[toc]
#### Ansible Galaxy Commands
````yaml=
ansible-galaxy role <arguments>
positional arguments:
ROLE_ACTION
init Initialize new role with the base structure of a role.
remove Delete roles from roles_path.
delete Removes the role from Galaxy. It does not remove or alter the actual GitHub repository.
list Show the name and version of each role installed in the roles_path.
search Search the Galaxy database by tags, platforms, author and multiple keywords.
import Import a role into a galaxy server
setup Manage the integration between Galaxy and the given source.
info View more details about a specific role.
install Install role(s) from file(s), URL(s) or Ansible Galaxy
````
#### Working with Ansible Roles
````yaml=
Check local roles:
ansible-galaxy role list
Create a local role:
ansible-galaxy init <role-name>
Explore Ansible Galaxy:
galaxy.ansible.com
Install a role from Ansible Galaxy:
ansible-galaxy install <authorname.rolename>
Validate the role installation:
ansible-galaxy role list
````
#### Write a playbook to call the role
````yaml=
---
- name: nginx using role
hosts: nodes
become: yes
tasks:
- name: update cache
apt: update_cache=yes
- name: Install and work with nginx
include_role:
name: geerlingguy.nginx
````
#### Run the Playbook
````yaml=
ansible-playbook role-play.yaml
````
#### Validate the changes
````yaml=
curl localhost (or elinks)
````
#### Remove a role from Ansible Controller
````yaml=
Syntax:
ansible-galaxy role remove <role_name>
Example:
ansible-galaxy role remove geerlingguy.nginx
Validate the role has been removed:
ansible-galaxy role list
````
#### Configure a LAMP server using Ansible Roles
````yaml=
Install Roles:
ansible-galaxy install geerlingguy.mysql
ansible-galaxy install geerlingguy.apache
ansible-galaxy install geerlingguy.php
Create an Ansible playbook named lamp.yml with the following contents:
---
- hosts: all
roles:
- geerlingguy.mysql
- geerlingguy.apache
- geerlingguy.php
Run the playbook:
ansible-playbook -i path/to/custom-inventory lamp.yml
Validation:
````