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