Industry Use Case: Automation using Ansible

Why we need Automation?

Software tests have to be repeated often during development cycles to ensure quality. Every time source code is modified software tests should be repeated. For each release of the software it may be tested on all supported operating systems and hardware configurations. Manually repeating these tests is costly and time consuming. Once created, automated tests can be run over and over again at no additional cost and they are much faster than manual tests. Automated software testing can reduce the time to run repetitive tests from days to hours. A time savings that translates directly into cost savings.

Even the largest software and QA departments cannot perform a controlled web application test with thousands of users. Automated testing can simulate tens, hundreds or thousands of virtual users interacting with a network, software and web applications.

What is Ansible?

Ansible is a configuration management tool. It is one of the best automation tool that can automate provisioning of IT Services, Application Deployment, and many other tasks.

We need scaling too in Automation so that in case of high traffic also, server serves the client’s requests.

Ansible implements micro-services architecture. It focusses on small tasks instead of a big complex process.

Think out of the box. This is what is needed to automate anything.

Ansible uses YAML that is easier to understand and learn.

Ansible Tower

Ansible tower is a web UI based solution that makes ansible easier to use for IT Teams.

Tower allows you to control access to who can access what, even allowing sharing of SSH credentials without someone being able to transfer those credentials. Inventory can be graphically managed or synced with a wide variety of cloud sources. It logs all of your jobs, integrates well with LDAP, and has an amazing browsable REST API. Command line tools are available for easy integration with Jenkins as well. Provisioning callbacks provide great support for autoscaling topologies.

With Red Hat® Ansible® Tower you can centralize and control your IT infrastructure with a visual dashboard, role-based access control, job scheduling, integrated notifications and graphical inventory management.

What if the controller node goes down?

Controller Node is a single point of failure. If it goes down, then Ansible Tower comes for the rescue. It gives us clustering features. There are multiple Ansible Towers deployed. They all share a database- PostgreSQL. Using this, we can scale our automation even if controller node goes down. This process is called Orchestration.

Template is used to discover the playbook.

We also integrated AWS with Ansible Tower. The credentials will be stored.

Continuous Integration (CI) means provisioning an instance

Continuous Delivery (CD) means deploying an application

Ansible Tower connects AWS through API.

Data Science, Big Data, Cloud Computing