Automation and Configuration Management

Configuration management is a process for maintaining computer system, 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.

Samrudhi Shingare
5 min readNov 23, 2021

1. What is Configuration?

Configuration management is a system engineering process for establishing and maintaining consistency of a product’s performance, function and physical attributes with its requirements, design and operation information throughout its life.

Managing IT system configurations involves defining a system’s desired state-like server configuration- then building and maintaining those system. Closely related to configuration assessment and drift analyses, configuration management uses both to identify system to update, reconfigure or patch.

Configuration management occurs when a configuration platform is used to automate, monitor, design and manage otherwise manual configuration processes. System-wide changes take place across servers and networks, storage, application, and other managed systems.

An important function of configuration management is defining the state of each system. By orchestrating these processes with a platform, organization can ensure consistency across integrated system and increase efficiently. The result is that business can scale more readily without hiring additional IT management staff.

2.Importance of windows PowerShell. Why windows PowerShell has introduced?

§ PowerShell is not just a Scripting Language, it is also a Command-line Shell:

There are many instances where you don’t even need to script, just running a single line command will fetch you the result that you are looking for.

§ No prior Programming knowledge is required:

Yes indeed it’s true! You don’t need to have any prior scripting or programming knowledge to learn or start using PowerShell. Since PowerShell comes with a very powerful feature ‘Pipeline’ which allows you to perform complex tasks on the output results within the command line itself.

§ It is not going away:

PowerShell has now become the present and future of Microsoft platform and it is not going away anytime in near future.

§ It can make your life easier:

Believe it or not using the command line can make your life easier. Suppose for a moment that you need to update an Active Directory attribute for a thousand users. Performing the task manually would likely take hours to complete.

Why was the PowerShell introduced in windows:

It was developed by Microsoft to help IT professionals to configure systems and automate administrative tasks. When it was developed by Microsoft, it was suppose to replace the Command Prompt, because of its power and control over the Windows operating system. The administrative tasks are performed by cmdlets in the PowerShell.

Microsoft designed Windows PowerShell as a tool that helps you automate and quickly solve a lot of tedious administration tasks. For example, you can use PowerShell to display all the USB devices installed on one or multiple computers in a network or you can set a time- consuming task to run in the background while you do other work.

3. What is core relationship with DevOps and automation configuration management.

To truly grasp the DevOps concept within an organization, you should understand a handful of essential primary disciplines. These include coding, building, testing, packaging, release, configuration, and monitoring. Each discipline comes with its own set of best practices.

Configuration management is important in DevOps because it helps you automate otherwise tedious tasks and allows an organization to increase agility. Moreover, configuration management supports DevOps holistically and it’s widely agreed upon that configuration management is essential to DevOps, as opposed to being just another component of the process

§ Identification: The process of finding and cataloguing system-wide configuration needs.

§ Control: During configuration control, we see the important of change management at work.

4. DevOps tool Chef, puppet, Ansible, SaltStack in details with hands on.

Configuration Management Tools in DevOps

§ Chef: The chef an automation platform that provides an effective way to configure and manage infrastructure. The chef works on Ruby and DSL language for writing the configurations. Its architecture is like the Puppet master-agent model.

Pros:-

1. Integrates well with Git

2. Highly flexible due to code-driven approach

Cons:-

1. Large code bases

2. No support for push functionality

§ Ansible : Ansible simplifies complicated orchestration and configuration management tasks. It is in Python language and allows users to script commands in YAML as a necessary programming paradigm.

Pros:-

1. No dependency on agents

2. Easy learning curve

Cons:-

1. Lacks UI

2. No notion of state

3. Nascent windows support

§ Puppet: Puppet is a full-fledged configuration automation and deployment orchestration solution. Its an open-source tool based on ruby. It runs as a master-client setup and uses a model- driven approach.

Pros:-

1. Great community support

2. Simple installation

Cons:-

1. Ruby-based CLI

2. Ruby Support is declining

§ SaltStack: SaltStack configuration tool relies on a master-client setup model or a non-centralized model. SaltStack is available in Python programming language and use the push model for executing commands via SSH protocol.

Pros:-

1. Feature-rich DSL

2. Enormously flexible

Cons:-

1. No immutable infrastructure

2. Difficult to set up

5. Automation command or Script:

In context|computing|lang=en terms the difference between command and script

is that command is (computing) a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task while script is (computing) a file containing a list of user commands, allowing them to be invoked once to execute in sequence.

As nouns the difference between command and script

is that command is an order to do something while script is (countable obsolete) a writing; a written document.

As verbs the difference between command and script

is that command is to order, give orders; to compel or direct with authority while script is to make or write a script.

6 .How Automation configuration management help in IT industry:

.Configuration management tool can provision a new server within minutes with less room for error. You can also use automation to maintain a server in the desired state, such as your standard operating environment (SOE), without the provisioning scripts needed previously.

· Configuration management helps engineering teams build robust and stable system through the use of tools that automatically manage and monitor updates to configuration data.

· Complex software system are composed of components that differ in granularity of size and complexity.

--

--