.. _4.0-explore-tower: Exercise 4.0: Explore Red Hat Ansible Tower ########################################### Objective ========= Ansible Tower is a web-based solution than runs on top of Ansible that provides additional functionality while simplifying the operations of the software. In this lab, you will log in and perform some basic configurations that will be used in later labs to perform automation tasks against your F5 BIG-IP device. This exercise will cover: - Determining the Ansible version running on the control node - Locating and understanding: - Ansible Tower **Inventories** - Ansible Tower **Credentials** - Ansible Tower **Projects** - Ansible Tower **Templates** Guide ===== Step 1: Login to Ansible Tower ------------------------------ Open up your web browser and type in the Ansible control node’s DNS name For example if the student was assigned the student1 workbench and the workshop name was ``durham-workshop`` the link would be: :: **https://student1.durham-workshop.rhdemo.io** .. This login information has been provided by the instructor at the beginning of class. |Tower Login Window| - The username will be ``admin`` - password provided by instructor After logging in the Job Dashboard will be the default view as shown below. |Tower Job Dashboard| 1. Click on the **i** information button on the top right of the user interface. .. figure:: images/information_button.png :alt: information button link information button link 2. A window will pop up similar to the following: .. figure:: images/version_info.png :alt: version info window version info window Take note that both the Ansible Tower version and the Ansible Engine version are provided here. Step 2: Examine the Ansible Tower Inventory ------------------------------------------- An inventory is required for Red Hat Ansible Tower to be able to run jobs. An inventory is a collection of hosts against which jobs may be launched, the same as an Ansible inventory file. In addition, Red Hat Ansible Tower can make use of an existing configuration management data base (cmdb) such as ServiceNow or Infoblox DDI. More info on Inventories in respect to Ansible Tower can be found in the `documentation here `__ 1. Click on the **Inventories** button under **RESOURCES** on the left menu bar. .. figure:: images/inventories.png :alt: Inventories Button Inventories Button 2. Under **Inventories** there will be inventories. Click on the ``Demo Inventory``. 3. Under the ``Demo Inventory``, click the **HOSTS** button at the top. There will be hosts configured here. Click on one of the devices. 4. Click on the ``Demo Inventory`` link at the top of the page to return the top level menu. 5. Click on **GROUPS**. This is where you can configure Group of hosts |Inventory| Step 3: Examine the Ansible Tower Workshop Project -------------------------------------------------- A project is how Ansible Playbooks are imported into Red Hat Ansible Tower. You can manage playbooks and playbook directories by either placing them manually under the Project Base Path on your Ansible Tower server, or by placing your playbooks into a source code management (SCM) system supported by Tower, including Git, Subversion, and Mercurial etc. For more information on Projects in Tower, please `refer to the documentation `__ 1. Click on the **Projects** button under **RESOURCES** on the left menu bar. .. figure:: images/projects.png :alt: projects link projects link 2. Under **PROJECTS** there will be one pre-configured projects, or ``Demo Project``. Click on the ``Demo Project``. Note that ``Git`` is listed for this project. This means this project is using ``Git`` for SCM. 3. Under the ``Demo Project`` click the **SCM TYPE** drop down menu Note that Git, Mercurial and Subversion are some of the choices. Return the choice to Git so that the Project continues to function correctly. |project link| Step 4: Examine the Ansible Tower Workshop Credential ----------------------------------------------------- Credentials are utilized by Tower for authentication when launching **Jobs** against machines, synchronizing with inventory sources, and importing project content from a version control system. For the workshop we need a credential to authenticate to the network devices. For more information on Credentials in Tower please `refer to the documentation `__. 1. Click on the **Credentials** button under **RESOURCES** on the left menu bar. .. figure:: images/credentials.png :alt: credentials link credentials link 2. Under **CREDENTIALS** there will be one pre-configured credential, or ``Demo Credential``. Click on the ``Demo Credential``. 3. Under the ``Demo Credential`` examine the following: - The **CREDENTIAL TYPE** is a **Machine** credential. - The **USERNAME** is set to ``admin``. - The **PASSWORD** is already configured, and is **ENCRYPTED**. - The **SSH PRIVATE KEY** is blank. .. figure:: images/credential.png :alt: credential credential Step 5: Examine the Ansible Tower Template ------------------------------------------ Templates or Job Templates define the parameters that will be used when executing an Ansible playbook. These parameters include previously mentioned features such as which project and inventory will be used. Additionally, parameters such as logging level and process forks allow for additional granularity on how playbooks are ran. 1. Click on the **Templates** button under **RESOURCES** on the left menu bar. 2. Under **TEMPLATES** there will be one pre-configured credential, or ``Demo Job Template``. Click on the ``Demo Job Template``. .. figure:: images/template.png :alt: template link template link Takeaways ========= - Ansible Tower needs an inventory to execute Ansible Playbooks against. This inventory is identical to what users would use with the command line only Ansible project. - Ansible Tower can sync to existing SCM (source control management) including ``GitHub``. - Ansible Tower can store and encrypt credentials including SSH private keys and plain-text passwords. Ansible Tower can also sync to existing credential storage systems such as CyberArk and Vault by HashiCorp - Ansible Job Templates define the parameters that will be used when executing an Ansible playbook -------------- Complete ======== You have completed lab exercise 4.0 You have now examined all three components required to get started with Ansible Tower. A credential, an inventory and a project. In the next exercise we will create a job template. `Click here to return to the Ansible Network Automation Workshop <..>`__ .. |Tower Login Window| image:: images/login_window.png .. |Tower Job Dashboard| image:: images/tower_login.png .. |Inventory| image:: images/inventory.png .. |project link| image:: images/project.png