anchor.diff:  Ansible Galaxy is Ansible’s official community hub for sharing Ansible roles. A role is the Ansible way of bundling automation content and making it reusable.
   ____
   
  -**Reusable**. That's the word IT people always (or should) care about. Roles on Ansible is a great way to reuse a piece of task that you always have to do when provisioning some environment. I won't extend myself here on how create a role, for that please take a look on the http://docs.ansible.com/ansible/latest/playbooks_reuse.html[official docs] that you should have your answers.
  +**Reusable**. That's the word IT people always (or should) care about. Roles on Ansible is a great way to reuse a piece of task that you always have to do when provisioning some environment. I won't extend myself here on how to create a role, for that please take a look on the http://docs.ansible.com/ansible/latest/playbooks_reuse.html[official docs] that you should have your answers.
   
  -Instead I'd like to bring your attention on Ansible Galaxy and how you can reuse someone else's work or contributing to them. Galaxy is the https://hub.docker.com/[Docker Hub] for docker images or the Github for opensource projects. There will you find a lot of roles people already did so you could take them and orchestrate your playbook on a way that could do barely anything you need.
  +Instead I'd like to bring your attention on Ansible Galaxy and how you can reuse someone else's work or contributing to them. Galaxy is the https://hub.docker.com/[Docker Hub] for docker images or the Github for open source projects. There will you find a lot of roles people already did so you could take them and orchestrate your playbook on a way that could do barely anything you need.
   
  -Let's take a https://bitbucket.org/tecnobizz/vagrant-alm[project I'm working on] that's provisioning a environment to setup a sort of an https://en.wikipedia.org/wiki/Application_lifecycle_management[ALM process]. For that, I need to provision three servers: https://jenkins.io/[Jenkins] for CI/CD process, https://www.sonarsource.com/[SonarSource] for quality analysis and http://www.sonatype.org/nexus/[Nexus] for artifact repository.
  +So Ansible Galaxy can help you with: (a) learn by example by looking on the code other people already provided and; (b) create great playbooks by orchestrating with roles done by the community.
  +
  +Let's take a look on a https://bitbucket.org/tecnobizz/vagrant-alm[project I'm working on] that's provisioning a environment to setup a sort of an https://en.wikipedia.org/wiki/Application_lifecycle_management[ALM process]. For that, I need to provision three servers: https://jenkins.io/[Jenkins] for CI/CD process, https://www.sonarsource.com/[SonarSource] for quality analysis and http://www.sonatype.org/nexus/[Nexus] for artifact repository.
   
   To provision all the three servers requires a lot of vanilla work that I, as a newbie on Ansible and SO in general surely will take *a lot* of time to do so. And we don't have that time, right? Take a deep breath, a couple of coffee and go along with me.
   
  
positive.code: 
  === 3) Looking for roles that you need
  
  So now you have the plan for what you need to do and the Ansible Galaxy configured on your environment. Let's search for the roles that we need to **compose** our playbook so we can provision all the three servers at once.
  
  Remember that you just need to bring up all these roles from the Galaxy repository and run them on a orchestrate fashion to do what you need.
  
  You have at least three ways to search for roles:
  
  1. Ansible Galaxy command line: `$ ansible-galaxy search *jenkins*`. You'll see a list of roles with the name you provide as an argument. It's a simple and fast way to look for a role, but not my preferable way. This list only provides the name and a short description for the role. This must be suffice if what you are looking for is not so popular. But like the example above, the result may return a lot of options. What to choose?
  
  2. Ansible Galaxy Web Search. Go to https://galaxy.ansible.com/ and start exploring or browsing for a role. Let's use the same example as before and search for Jenkins. Click on "Browse Roles" and type "Jenkins" on keyword (or just https://galaxy.ansible.com/list#/roles?page=1&page_size=10&autocomplete=jenkins[click here]). You'll see a nicer interface and a sort function that will make all the difference: `Stargazers`. That means we can download the most relevant and upvoted by the community. Prefer to take that one with the most starts. For this example, the chosen role will be the https://galaxy.ansible.com/geerlingguy/jenkins/[geerlingguy one]. 
  
negative.code: 
  First things first. Draw and write down everything you need to provision: a CentOS machine? Needs NodeJs? Java? PHP? What else? What are the application's requirements? Try to be as detailed as you need to. Take your time to plan your way down the hill, so you'll save time ahead.
  
  For this project, I just need the aforementioned 3 servers: Jenkins, SonarSource and Nexus on the latest version possible and, of course, everything that implies on it: a database server, JVM, web server and etc. Everything that I know that Ansible may provision for me.
  
  === 2) Prepare your environment
  
  