---
# System prepended metadata

title: Introduction to Configuration Management

---

# Introduction to Configuration Management

![Servers in a DataCentre](https://i.imgur.com/5a9ebvm.jpg)


#### Desired State Example
````-
- httpd should be installed
- git should be installed --> uninstall 2.81 --> 2.87
- user tom should be created / present
- service nginx should be running
- File tmp.config should be present in /tmp/ --> delete
````

#### Why Automation
````-
- Consistency
- Reduce Human errors
- Increase Productivity
- Scaling
- Reduce time and effort
- Ease of Maintenance
````

#### Infrastructure-as-Code (Provision the Infrastructure)
````-
- Terraform
- AWS CloudFormation
- Azure ARM Templates
- CDK
- Pulumi
````
#### Configuration Management (Maintain the state of the Infrastructure)
````-
- Ansible
- Chef
- Puppet
- Saltstack
- AWS OpsWorks
- AWS Systems Manager
- Powershell DSC
- CFEngine
- BladeLogic
````

#### Terminology in different Config Management tools
![CM Tool Mapping](https://i.imgur.com/AHxRxbk.png)