anchor.diff:  
   === 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.
  +So now you have the plan for what you need to do and the Ansible Galaxy set up 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?
  +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]. 
  +2. **Ansible Galaxy Web UI Search**. Go to https://galaxy.ansible.com/[the Ansible Galaxy web site] and start exploring or browsing for a role. Let's use the same example as before and just 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 nice interface and a sort function that will make all the difference: `Stargazers`. That means we can filter by the most relevant and upvoted role 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].
  +
  +3. **Google it**. The mindset here is the same as #2, but now you may hit on the Github repository instead of on the Ansible Galaxy web site. Hint: it's almost the same thing. Every Ansible Galaxy project has a Github backed project. So, guess what? It's open and you can (and should) contribute to them.
  +
  +Now that we have our role(s) we can move forward and start using it.
  +
  +=== 4) Read the docs, explore their code
  +
  +First things first. Read all available documentation on the project you choose and pay attention on the extension points that normally will be variables you should set to get the role do what you need. Take for example the https://github.com/geerlingguy/ansible-role-java[Geerling Guy's Java role].
  +
  +On this role you could set the Java version you want to be installed just by setting the `java_packages` variable.
  +
  +Go ahead and install the role on your machine:
  +
  +```
  +$ ansible-galaxy install geerlingguy.jenkins
  +```
  +
  +You have to have internet connection so Ansible could connect on the repository and bring the role and all the dependencies it needs. After the installation process, check for the role installed on your system:
  +
  +```
  +$ ansible-galaxy list
  +```
  +
  +You should see the Jenkins role installed on your system provided with the version and all the other dependencies it needs. Ansible Galaxy works like many others package managers over there: it downloads all other required dependencies so you can work with it without any worries. Remember the Ansible Role's path set on step #2? Try to list the directory and you'll see all the roles there too.
  +
  +Explore their work by looking for what the role really do. Start by exploring the `$ANSIBLE_ROLES_PATH/roles/geerlingguy.jenkins/tasks/main.yml`. Normally this is the starting point of the role and you really could see what's going on. Try to understand their code and how things are been doing there. It's a very nice exercise to learn by example and to absorb concepts harder to get on books or manuals.
  +
  +After that, be comfortable with their code and explore everything else, trying to understand how the pieces are working together to make the role that awesome.
  +
  +=== 5) Test it
  +
  +It's time to enter in the arena and put some bytes to working on. You have to create your project.
  +
  +=== 6) Orchestrate
  +
  +=== Conclusion
  
positive.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.
  
  === 2) Prepare your environment
  
  
negative.code: 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 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 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.
  
  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.
  
  