Case Study: Ansible Making OpenStack Simple

Samar Pratap Singh
6 min readDec 1, 2020

Automation is the creation and application of technologies to produce and deliver goods and services with minimal human intervention.

The implementation of automation technologies, techniques and processes improve the efficiency, reliability, and/or speed of many tasks that were previously performed by humans.

Configuration management (CM) is a process for maintaining computer systems, servers, and software in a desired, consistent state. It’s a way to make sure that a system performs as it’s expected to as changes are made over time.

History of Automation:

Automation is not a new term, it exists from the last few decades but the ways to automate have always been upgraded. Manual tasks have always been error-prone & slow, hence not suitable in this fast pace world. Configuring thousands of servers identically is a very tedious job & takes a sheer amount of time. Earlier Scripting languages & other programming languages like Python were used for Automation, but they were generally hardcoded hence caused issues when any changes took place in any technologies involved.

The need for Automation:

Automation is required because of the following:

  • To prevent Costly Human Errors in Manual Systems
  • To reduce Time Consuming Manual Compilation And Reporting
  • To prevent Hindrance In The Company Growth
  • For Integration Problems With Newer Applications And Legacy Systems
  • For Streamlining business processes across the organization

Automation Tools:

Various tools & technologies are used for various requirements in the IT world, like for Continuous Integration & Continuous Delivery we use Jenkins, GitLab, etc. Similarly, for Configuration Management Automation, there are automation tools like Ansible, Chef, Puppet, Salt etc.

Ansible is one of the most popular & the fastest growing Automation tool for Configuration management.

What is Ansible?

Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.

Ansible delivers simple IT automation that ends repetitive tasks and frees up DevOps teams for more strategic work.

Every business is a digital business today. Technology is the innovation engine, and delivering your applications faster helps win. Historically, that required a lot of manual effort and complicated coordination. But today, there is Ansible — the simple, yet powerful IT automation engine that thousands of companies are using to drive complexity out of their environments and accelerate DevOps initiatives.

Why Ansible?

There are various Automation tools for Configuration Management like Puppet, Chef, etc other then Ansible. So what’s different with Ansible?? Let’s see.

Complexity kills productivity, True?? 💡

Ansible is:

  • Simple: Human readable automation, No special coding skills needed, & Tasks executed in order. Get productive quickly
  • Powerful: App development, Configuration management, & Workflow orchestration. Orchestrate the app lifecycle
  • Agentless: Agentless architecture, uses OpenSSH and WinRM, & No agents to exploit or update. Predictable, reliable and secure

Ansible actually grew from 36% in 2018 to 41% in 2019, overtaking Chef which only grew from 36% to 37%, similar tools. Above shows the statistics from the year 2019 for Top Configuration Management tools.

How Ansible Works:

EFFICIENT ARCHITECTURE

Ansible works by connecting to your nodes and pushing out small programs, called “Ansible Modules” to them. These programs are written to be resource models of the desired state of the system. Ansible then executes these modules (over SSH by default) and removes them when finished.

Your library of modules can reside on any machine, and there are no servers, daemons, or databases required. Typically you’ll work with your favourite terminal program, a text editor, and probably a version control system to keep track of changes to your content.

It uses no agents and no additional custom security infrastructure, so it’s easy to deploy — and most importantly, it uses a very simple language (YAML, in the form of Ansible Playbooks) that allow you to describe your automation jobs in a way that approaches plain English.

Ansible Use-Cases:

Ansible seamlessly unites workflow orchestration with configuration management, provisioning, and application deployment in one easy-to-use and deploy platform.

Regardless of where you start with Ansible, you’ll find our simple, powerful and agentless automation platform has the capabilities to solve your most challenging problems.

Complete IT Automation with Ansible 🔥

  • Provisioning
  • Configuration Management
  • Application Deployment
  • Continuous Delivery
  • Security Automation
  • Orchestration

Ansible includes hundreds of modules to support a wide variety of IT integrations, including: AWS, GCP, Azure, Openstack, NetApp, Splunk, Windows, VMware, Jenkins, UNIX, Docker, K8S & so on.

Which all Companies using Ansible?

Over 1530 companies reportedly use Ansible in their tech stacks, including LaunchDarkly, Tokopedia, and ViaVarejo.

Usage of Ansible depending upon the Industry:

Ansible is making OpenStack simple (Case Study):

What is Openstack?

OpenStack is an open source cloud computing platform that allows businesses to control large pools of compute, storage and networking in a data centre. It can also be said that OpenStack is a set of software tools for building and managing cloud computing platforms for public and private clouds.

Problem with Openstack:

Maintaining cloud infrastructure can be a challenge. Ensuring compute-on-demand for a large organization requires mobilization and coordination of a huge collection of resources — not just compute, but also networking, storage, security, and more. To manage a cloud infrastructure like OpenStack properly, you need to manage not just the individual cloud services (configuration), but also the interactions and relationships between them (orchestration).

Solution: (Openstack + Ansible Integration)

Ansible’s benefits go beyond mere deployment of OpenStack, though. Once OpenStack is deployed, you can then use the many Ansible OpenStack modules to manage the operation of your cloud. Then the same simple and powerful features of Ansible used for deploying and managing OpenStack can be used to provision, configure, and deploy the applications and services that live on top of the cloud. With Ansible, it’s one tool for your cloud operator, developers and users.

Push-button cloud management with Ansible Tower:

With Red Hat Ansible Tower, tasks like expanding your cloud’s capacity with a new rack or provisioning a new VPC environment for your development team can be done with the push of a button.

Conclusion:

Ansible is a great automation tool which has revolutionized the DevOps world. Many companies & businesses are getting benefited from Ansible & saving millions of dollars. Thats why I’m learning Ansible to integrated with other technologies I know. Thanks for reading! 😃

--

--

No responses yet