Automation using Ansible

Ansible is a simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems.

Ansible Tower is a web-based solution that makes Ansible even easier to use for IT teams of all kinds. It’s designed to be the hub for all of your automation tasks.

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.

Terraform + Ansible = Terrible

Automation refers to the concept of completing something automatically i.e. it does not requires manual intervention. Once the automating script is ready, then it will perform all the required tasks automatically without human intervention. Automation can be used in unlimited ways:

  • orchestration.
  • deployment.
  • configuration management.
  • provisioning.
  • sending mail.
  • sending a notification, etc.

Scaling is needed because if in any business gets more clients instantly, then business servers will not be able to handle traffic, therefore because of dynamic nature, scaling is required. Ansible Tower solves various challenges

  • Single point of failure of the controller node by cluster technology.
  • Not able to run multiple playbooks by providing workflow.
  • Inability to send messages sending notifications, etc.

Job Template is designed for a specific workflow that contains all credentials and plays for the task to perform. Credentials can be used inside job template or if some are not supported, they can be explicitly created using the credentials menu. Cloud packages can be installed in environment to integrate it with ansible tower & for notification integration, they can be added using notification menu of ansible tower.