Simplify administration tasks with configuration management using tools like Ansible

Use case

Challenges

Main challenges

As of today, companies with networked computing environments experience challenges with deploying and managing servers and services efficiently. System administrators need to manage servers manually and engage in activities such as installing software, modifying configurations, and administering services.

As business needs and data centers grow, systems become sophisticated, and admins face difficulties while scaling manual systems. At the same time, engineers face challenges with agile practices that involve continuous integration and deployment since IT operations require more time to configure systems.

Besides, it becomes riotous and labor-intensive in situations where an organization is administering a fleet of servers requiring constant updating, copying data, and pushing changes.

Business/technical goals

Improve productivity by automating complex multi-tier IT application environments.

Organizations can use configuration management tools to manage and provision data centers in real-time through plaintext definition files. The solution abstracts many of the operating-system-specific implementations of a configuration.

Businesses can leverage configuration management using Ansible to easily manage and schedule an IT environment that consists of multiple virtual private clouds (VPCs) and AWS accounts.

Approach

You can automate standard sysadmin tasks using Ansible, an open-source IT configuration management, deployment, and orchestration tool.
Some of the tasks that Ansible automates include:

Managing users – You can use loops to create a list of users and groups. Ansible also helps create an extensive list of users among different groups. Ansible loops feature the user module for creating multiple users. Another typical Ansible loop that users can apply include file module for changing ownership on several files and directories.
Package installation – Ansible facts helps users determine the module to use for package installation.
Starting services – Ansible offers a service module for starting and stopping applications. Systemd module is used when users need more options.

Situation before & after the implementation

Before

Traditionally, network and system administrators manage servers manually, which involves tedious and labor-intensive activities such as installing software, modifying configurations, and administering services on each server.

Current businesses run complex applications hosted in big data centers. In such situations, it becomes challenging for system admins to scale the systems manually. Besides, the legacy approach to system management hampers frequent and agile software release.

Poor manual configurations can result in cybersecurity risks, including cyber-attacks and data breaches.

After

Businesses can simplify administration tasks with configuration management using tools like Ansible. The straightforward process involves creating a group of machines, describing the configuration requirements, and any other necessary actions. Configuration management using Ansible enables admins to automate issuing commands from a central location to perform the tasks.

The process eliminates the tedious tasks of installing client software on node machines/fleet of servers. Instead, the tool is installed in the control machine (even a laptop) where the admin can be running commands.
Organizations like NASA that have implemented Ansible in configuration management are better equipped to manage their AWS environments. The solution provides better operations, efficiency, and security to clients.

Configuration management using Ansible reduced the time for updating Nasa.gov from over 1 hour to under 5 minutes. The solution also reduced the patching update process from a multi-day task to 45 minutes, and provisioning OS accounts across the entire environment now happens in under 10 minutes. Ansible reduced the application stack set up from 1-2 hours to under 10 minutes per stack.

Methodology

Immersion

Introduction with the client to understand his context - both business and technical. The aim of the phase is to explore this new context, gather the needs through exchange with the different key points of contact, answer unclear points, and agree on a defined scope.

Ideation

Proposition of several potential solutions that could fit the need and iterate on it based on client feedback. In this step, we can include a prototype or a Proof of Concept to have a better sense of the feasibility of the architecture to put in place with its different layers/components.

Implementation & tests

Iterative phase based on Agile methodologies & rituals: sprint planning, demo, retrospective, prioritization, etc. Each sprint will include the implementation of the technical architecture, the deployment of the infrastructure, and the development phase if required.

Production

Go in production with the defined solution and ensure post-production support if required.

Benefits

  • Simplified configuration management - Ansible configuration management tool uses simple human-readable YAML syntax called playbooks. The tool is suitable for all system administrators since it does not require special coding skills. The configuration management tool defines and maintains the consistency of service performance.
  • Agentless - Simplifying configuration management using Ansible does not require users to install agents or additional software and firewall ports on hosts or client systems for automation.
  • Flexible - Configuration management tools offer robust features needed to model complex IT workflows. For instance, Ansible has hundreds of modules for managing infrastructure, networks, operating systems, and services. The tools allow orchestration of an entire application environment regardless of the deployment platform.
  • Resource efficient - Ansible does not require the installation of extra software on servers, which free resources for applications.
  • Improved service provisioning - Configuration management tools like Ansible help to streamline booting by ensuring that required packages are downloaded and installed.
  • Security - System admins can define security policies on Ansible and incorporate them into other automated processes. The tool allows users to configure their security details and credentials in a control machine and embed the features in other nodes automatically.
  • Improved collaboration - Configuration management tool like Ansible is written in YAML that expedites communication between technical and non-technical teams.

Getting started with Technofy

At Technofy, we help clients simplify administration tasks with configuration management using tools like Ansible. We deploy tested and proven service development and deployment and configuration management practices and tools to save time and reduce human errors. With Ansible, it becomes easy to abridge administration activities through IT infrastructure automation from service provisioning and configuration management to application deployment.
Contact us for more