Ansible and Its Use Cases

What is Ansible?

Ansible is a software tool that provides simple but powerful automation for cross-platform computer support. It is primarily intended for IT professionals, who use it for application deployment, updates on workstations and servers, cloud provisioning, configuration management, intra-service orchestration, and nearly anything a systems administrator does on a weekly or daily basis. Ansible doesn’t depend on agent software and has no additional security infrastructure, so it’s easy to deploy.

What can Ansible Automate?

  1. Provisioning: Creating a suitable environment for the application/ software to live is necessary. Ansible provides a way to automate the environment created for the application’s existence.
  2. Configuration Management: Perform a wide variety of configuration tasks, such as start/ stop services, change the configuration of a system, device, or application, etc.
  3. Application Deployment: Automate the defining of deployment with Ansible and manage the deployment using Ansible tower. This makes the entire application cycle from production to deployment efficient and manageable.
  4. Continuous Delivery: Creating and managing a continuous integration/ continuous delivery pipeline can get cumbersome. That’s where Ansible steps in and makes the developer’s lives easier.
  5. Security and compliance: Working with the projects, always sets boundaries and is integrated with the company’s security policies. Having security policies integrated automatically with the deployment can make complying with policies easier.
  6. Orchestration: An entire project is a collection of many different instances having a different configuration. Ansible merges and manages these different instances as a whole.

What is Ansible Architecture?

Ansible architecture is fairly straightforward. See the below diagram understand the Ansible architecture:

  • Inventories: Ansible inventories are lists of hosts (nodes) along with their IP addresses, servers, databases, etc. which need to be managed. Ansible then takes action via a transport — SSH for UNIX, Linux, or Networking devices and WinRM for Windows system.
  • APIs: APIs in Ansible are used as transport for Cloud services, public or private.
  • Modules: Modules are executed directly on remote hosts through playbooks. The modules can control system resources, like services, packages, or files (anything really), or execute system commands. Modules do it by acting on system files, installing packages, or making API calls to the service network. There are over 450 Ansible-provided modules that automate nearly every part of your environment.
  • Plugins: Plugins allow to the execution of Ansible tasks as a job build step. Plugins are pieces of code that augment Ansible’s core functionality. Ansible ships with a number of handy plugins, and you can easily write your own.

Advantages Of Using Ansible

  1. Agentless –There are no agents or software deployed on the clients/servers to work with Ansible. The connection can be done through SSH or using Python.
  2. English Like Language — To use the Ansible, configure, and deploy the infrastructure is very simple and it is English like the language used called YAML.
  3. Modular — The Ansible uses modules to automate, configure, deploy, and orchestrate the IT Infrastructure. There are around 750 + modules built-in Ansible.
  4. Efficient — There are no servers, daemons, or databases required for Ansible to work.
  5. Features — Ansible comes with a whole lot of features and can be used to manage the Operating systems, IT Infrastructure, networks, servers, and services in very little time.
  6. Secure and consistent — Since Ansible uses SSH and Python it is very secure and the operations are flawless.
  7. Reliable — The Ansible Playbook can be used to write programs or modules and can be used to manage IT without any downside.
  8. Performance- The Ansible’s performance is excellent and has very little latency.
  9. Low Overhead — As it is agentless and does not require any servers, daemons, or databases it can provide a lot of space in the systems and has low overhead in terms of deployment.
  10. Simple — It is very simple to use and is supported by YAML

Ansible Case Study: Arista

Ansible Case Study — A Real Life Usage by NASA

  1. Achieving near real-time RAM and disk monitoring (accomplished without agents)
  2. Provisioning OS Accounts across an entire environment in under 10 minutes
  3. Baselining standard AMIs (Amazon Machine Image) went from 1 hour of manual configuration to becoming an invisible and seamless background process
  4. Application stacks set up time reduced from 1–2 hours to under 10 minutes per stack.

The Wrap-Up

I have done my best to give you all a basic idea about Ansible and How it provides benefits in the current Scenario.

Thanks, Everyone for reading. That’s all… Signing Off… 😊

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abhayagarwal

Abhayagarwal

I am tech enthusiast fascinated towards technology and its various disciplines including Big Data, Hadoop, Web Development, Competative Programming,ML,etc.