Day 26 : Ansible Tower #90DaysofDevOps

Day 26 : Ansible Tower #90DaysofDevOps

What is Ansible?

Ansible is an open-source software provisioning, configuration management, and deployment automation and orchestration tool. To deliver infrastructure as code, Ansible can simply operate and set up Unix-like systems as well as Windows systems. For system configuration and maintenance, it comes with its own declarative programming language.

Ansible is well-known for its ease of installation, the convenience of usage in terms of client connectivity, lack of an agent for Ansible clients, and wide range of abilities. It works by connecting to clients over SSH, eliminating the need for a dedicated client agent, and pushing modules to the clients, which are then performed locally on the client side and the output pushed back to the Ansible server.

It can quickly connect to clients using SSH-Keys because it uses SSH. This simplifies the entire process. Client information, such as hostnames, IP addresses, and SSH ports, is saved in inventory files. Ansible may use an inventory file once it has been built and populated.

Why Ansible Tower?

Managing a vast infrastructure becomes quite tough. To utilise Ansible, different users and groups require varying levels of access. In addition, we must integrate these tools with other third-party tools in order to operate the IT infrastructure according to defined standards, such as integration with SCM tools for Ansible playbooks, integration with ticketing tools to create tickets if any tasks fail or notify the user via email or messaging apps, and so forth. We’ll also need an audit trail so we can keep track of who did what and when. One last item to consider is product support. Ansible Tower is the only way to get these features, which aren’t available in Ansible.

Features of Ansible Tower

Ansible Dashboard:

As soon as we log in to the Ansible Tower online portal, we are presented with an Ansible Dashboard. Ansible Dashboard displays job status in a graphical format, as well as information about recent job runs and templates. It also displays the number of hosts, failed hosts, inventories, and projects, among other things. We can also change the job status according to our needs.

Workflow Editor:

Workflow editor allows us to connect numerous playbooks, updates, and workflows together, even if they are run by different users, use different inventories, or have different credentials. We can establish dependencies, such as when the success or failure of one playbook is dependent on the success or failure of another. To set up a base system configuration and deploy an application, we may easily chain together different playbooks produced and maintained by different teams.

Tower Clustering:

To achieve high availability and higher performance, we need more than one Ansible Tower. Multiple nodes can be used to form an Ansible Tower cluster. We can quickly scale our Ansible automation to meet our needs, and we can also set aside capacity for teams, jobs, and remote execution for enterprise-wide access. With 20 cluster nodes, the Ansible Automation architecture can accommodate up to 200k nodes.

Real-time Analysis:

It offers a real-time update on the success and failure of each host’s Ansible plays and tasks. We can view the current state of our automation and which tasks will be executed next. We can also monitor how source control updates and client inventory refreshes are progressing.

Audit Trail:

It is critical in an organisation to keep track of any changes made to an application so that if something goes wrong, we can examine the logs and undo any modifications made by mistake. Ansible Tower keeps track of all the details about any modifications made to Ansible, including who made them, what changes were made, and when they happened. All modifications made to Ansible Tower, such as job creation information, inventory adjustments, and so on, are tracked by Ansible Tower. This audit trail may be seen in the Activity Stream section of the web portal. It can also be linked with the organization’s existing logging application to perform greater automation and event correlation analysis and generate tickers in any ITSM product.

Job Scheduling:

We can use Ansible Tower to schedule jobs that run a playbook, update the cloud inventory, and update source control at a given time, daily, or weekly. Ansible does not have this functionality. The frequency of the scheduled jobs can also be set. We can also connect it to a continuous delivery pipeline.

Self-Service:

We may delegate read-only access to L1 users to keep an eye on Ansible Dashboards or conduct simple activities like adding new users, and groups, resetting the password, and so on with Ansible Tower’s self-service functionality. It also allows us to delegate control to Developers and QA users, allowing them to set up their own development and testing environments and conduct their jobs without the need for Ansible Administrator’s participation.

Notification Integration:

To notify users or teams about the success or failure of jobs, we can link Ansible Tower with email, messaging apps like Slack, HipChat, etc., SMS, PagerDuty, and more. We can also use Ansible tools to send notifications to a custom webhook, which can then be used to activate other tools in our infrastructure. For example, if any tasks fail, it will send a notification to any ITSM tool, which will create an incident for the job failure.

Rest API and CLI Tool:

Using the REST API, we can simply interface with Ansible Tower. It facilitates integration with other REST API-enabled third-party solutions. If we want to use Ansible Tower’s CLI tool to combine it with any command tools, that’s possible.

Management and Tracking of our inventory:

We can use this tower to manage our complete infrastructure inventory, whether it’s housed on a public cloud platform like Amazon Web Services, Microsoft Azure, GCP, or a private cloud like OpenStack or VMware. It syncs our cloud inventory on a regular basis, and we can also request settings on demand.

Execute Commands Remotely:

We may use the Conduct Command functionality in Ansible Tower to run tasks on any host or group of hosts in our inventory. It’s the same as using Ansible’s Ad-hoc command.

Ansible Tower Architecture

  • The web interface of Ansible Tower or the RESTful API allows users to interact with the Ansible Automation Platform infrastructure.
  • A web interface is a graphical interface wrapper that conducts API calls. Web interface actions are also available via API.

  • To integrate the Ansible Automation Platform with existing software tools and processes, a RESTful API is required.

  • They use the RabbitMQ messaging system and store data in a PostgreSQL backend database.

Possible Architectures:

  • Integrated database on a single machine.
  • A single workstation that connects to a remote database.
  • Multi-machine cluster with high availability.

Tower Editions

This is available in three different editions: self-support, standard, and premium. They differ from one another in terms of the skills they provide. Let’s take a look at what they’re capable of.

Ansible Tower Pricing

Ansible Tower is available in three editions, as previously stated. The first edition, self-support, is available for a free trial, however, the other two editions require payment. Let’s have a look at the salary information.

Standard Edition: $10,000/year for up to 100 nodes

Premium Edition: $14,000/year for up to 100 nodes

How to Download Ansible Tower?

You can either install Tower on its own or use the installer that comes with it:

You can download the standalone Tower installer if you’re installing Tower in an environment with direct Internet access.

If you’re installing Tower in an environment with no direct access to online repositories or a proxy, you’ll need to utilise the bundled installer.

https://releases.ansible.com/ansible-tower/setup/ Download and unpack the Ansible Tower installation/upgrade tool: https://releases.ansible.com/ansible-tower/setup/

$ tar xvzf ansible-tower-setup-latest.tar.gz root@localhost

$ cd ansible-tower-setup-tower version> root@localhost

To install or upgrade, open the ansible-tower-setup-tower version> directory and change the inventory file, changing tower version> with the version number, such as 3.4.5 or 3.5.0.        


要查看或添加评论,请登录

Ayushi Tiwari的更多文章

社区洞察

其他会员也浏览了