Exploring Ansible Tower With A Hands-On
Today’s scaling industries aim to provide large productivity gains, but they have to deal with a wide variety of automation challenges, which are overcome by tools such as Ansible. This blog on Ansible Tower will give you a complete insight into the following:
- What is Ansible — Tower?
- Prerequisites To Install Ansible — Tower
- Ansible — Tower Parameters
- Installation Steps
- Hands-On
Alright!! So, let’s get started with what is Ansible Tower.
What is Ansible Tower?
Ansible Tower is Ansible at a more enterprise level. It is a web-based solution for managing your organization with a very easy user interface that provides a dashboard with all of the state summaries of all the hosts, allows quick deployments, and monitors all configurations.
The tower allows you to share the SSH credentials without exposing them, logs all the jobs, manage inventories graphically and syncs them with a wide variety of cloud providers.
Prerequisites To Install Ansible Tower
Ansible Tower is supported by the following operating systems:
- Red Hat Enterprise Linux 6 64-bit
- Red Hat Enterprise Linux 7 64-bit
- CentOS 6 64-bit
- CentOS 7 64-bit
- Ubuntu 12.04 LTS 64-bit
- Ubuntu 14.04 LTS 64-bit
- Ubuntu 16.04 LTS 64 bit
- You should have the latest stable release of Ansible.
- 64-bit support required (kernel and runtime) and 20 GB hard disk.
- Minimum 2 GB RAM (4+ GB RAM recommended) is required.
- 2 GB RAM (minimum and recommended for Vagrant trial installations
- 4 GB RAM is recommended /100 forks
For Amazon EC2: Instance size of m3.medium or larger is required for less than 100 hosts and if you have more than 100 hosts, then you require an instance size of m3.xlarge or larger.
For HA MongoDB setups, you can use the below formula for a rough estimate of the amount of space required.
(NumberOfHostsIninventory)*(NumberOfScans)*(AverageModuleFactSize)*(NumberOfModulesScanning)
Ansible Tower Parameters
In this section of the blog, you will get an insight into the following parameters of the tower:
- Tower Editions
- Tower Pricing
- Tower Features
Tower Editions
The Ansible Tower has 3 different editions; the self-support, standard, and premium edition. Each of these editions varies with the capabilities they offer. You can do everything from application deployment to multi-tiered orchestrations, with control, security, and logging capabilities.
Tower Pricing
As I mentioned before the tower has 3 editions, out of which the self-support one is the free trial version. For the other two edition’s pricing, you can refer to the below table:
Tower Features
Below are few of the Ansible Tower features:
- Multi-Playbook Workflows — This feature allows you to chain any number of playbooks, regardless of the usage of different inventories, utilizes various credentials, or runs different users.
- Scale Capacity With Clusters — We can connect multiple Ansible Tower nodes into an Ansible Tower cluster as the clusters add redundancy and capacity, which allow you to scale Ansible automation across the enterprise.
- Manage & Track Inventory — Ansible Tower helps you manage your entire infrastructure by letting you easily pull inventory from public cloud providers such as Amazon Web Services, Microsoft Azure, and more.
- REST API & Tower CLI Tool — Every feature present in Ansible Tower is available via Ansible Tower’s REST API, which provides the ideal API for a systems management infrastructure. The Ansible Tower’s CLI tool is available for launching jobs from CI systems such as Jenkins, or when you need to integrate with other command-line tools.
- Remote Command Execution — You can run simple tasks such as add users, restart any malfunctioning service, reset passwords on any host or group of hosts in the inventory with Ansible Tower’s remote command execution.
Alright!! So, now that you guys have understood the features of Ansible Tower, let’s get into the installation of Ansible Tower.
Installation of Ansible Tower
Before you install Ansible Tower, you have to first install and configure Ansible on your operating system and then also install PostgreSQL.
So, first, let’s start by installing and configuring Ansible. I will be using Ubuntu — 16.04 version as my operating system.
Install and Configure Ansible on Ubuntu
Step 1: As a root user, configure the Ansible PPA using the below commands.
apt-get install software-properties-common
apt-add-repository ppa:ansible/ansible
Step 2: After configuring, install Ansible using the below commands.
apt-get update
apt-get install ansible
After you are done installing, install PostgreSQL.
Installing PostgreSQL
Use the below commands, to install PostgreSQL.
apt-get update
sudo apt-get install postgresql postgresql-contrib
Download Ansible Tower
Step 1.1: Once you are done installing Ansible, register to download the Ansible — Tower.
Step 1.2: You will receive an email after you register to download the Ansible Tower. Open your mail and then click on the download button, to download.
Step 1.3: Then extract the Ansible Tower installation tool using the below commands.
tar xvzf ansible-tower-setup-latest.tar.gz
ansible-tower-setup-<tower_version>
where tower-version, is the version of the tower you have downloaded.
Step 2: After that set up your inventory file, where you have to mention the necessary passwords (admin_password, pg_password, rabbitmq_password) in the inventory file.
Step 3: Now, as the Tower setup playbook script uses the inventory file, it has to be invoked as ./setup.sh from the path where you unpacked the Tower installer tarball.
./setup.sh
Step 4: Once you are done setting up the Tower, use the web browser to access the Tower server and view the Tower login screen, wherein you have to enter the username and password, to access the Tower Dashboard.
Hands-On
In this hands-on, I will show you how to create a job to print a message.
So, refer to the below diagram for the steps that we are going to follow.
Create a User
To create a user, go the settings option, and then choose the User tab. Once you enter the User tab, click on the Add option to add a new User. Mention the details required and then click on Save.
Create an Inventory
Now, create an Inventory, by just clicking on the Inventories option and then going to the Add option.
Once you click on the Add option, mention all the details required like the name, description, organization and then click on Save.
Create a Host
To create a host, go the Inventories tab and choose the inventory to which you want to add hosts. Then choose the Hosts tab and click on Add Hosts. Here I want to add hosts for the inventory that was created above. Once the details are mentioned, click on Save.
Create a Credential
After creating hosts, create a credential by going to the settings options, and then choose the Credentials tab. After that, go to the Add option and mention the details. Once you are done, mentioning the details, click on Save.
Setting up a Project
There are two ways to access a simple playbook, either you can do it manually or by specifying a link from a Github repository.
In this blog, I am going to access the project manually.
Accessing a Manually created Playbook
For accessing a manually created playbook, you first have to create a playbook and then set up the project.
So, follow the below steps and start creating a playbook.
Use command-line console as a root user and create a directory for your project on the Tower server file system, in which to store your Ansible playbooks for this project.
Now, make a new project directory by creating it on the Tower filesystem under the Project Base Path directory, located by default in “/var/lib/awx/projects/”. Here the new directory is DEMO.
Now, let’s start setting up a project.
To set up a project use your web browser, create the new project by clicking on the Projects link at the top of the Tower Dashboard and click on the Add button.
Once you click on the Add button, you will be redirected to a page wherein you have to fill in details such as Name and Description of Project. Then, set the SCM type to be Manual, and for the Playbook Directory, select a value that corresponds to the subdirectory you created and then click on Save.
So, guys, that’s an end to this blog!!
This is the end of my article on Nagios interview questions. If you wish to check out more articles on the market’s most trending technologies like Artificial Intelligence, Python, Ethical Hacking, then you can refer to Edureka’s official site.
Do look out for other articles in this series which will explain the various other aspects of DevOps.
2. Git Tutorial
9. How To Orchestrate DevOps Tools?
13. Continuous Delivery vs Continuous Deployment
14. CI CD Pipeline
15. Docker Compose
16. Docker Swarm
18. Ansible Vault
19. Ansible Roles
20. Ansible for AWS
21. Jenkins Pipeline
23. Git vs GitHub
24. Top Git Commands
25. DevOps Interview Questions
28. Git Reflog
30. Top DevOps Skills That Organizations Are Looking For
33. Ansible Interview Questions And Answers
34. 50 Docker Interview Questions
36. Jenkins Interview Questions
39. Linux commands Used In DevOps
42. Nagios Interview Questions
Originally published at https://www.edureka.co on September 19, 2018.