# Introduction to Configuration Management

#### 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
