Infrastructure as Code (IaC) is a widespread terminology among DevOps professionals and a key DevOps practice in the industry. It is the process of managing and provisioning the complete IT infrastructure (comprises both physical and virtual machines) using machine-readable definition files. It helps in automating the complete data center by using programming scripts.
![Explanation of how laC works](https://k21academy.com/wp-content/uploads/2020/11/Explanation-of-how-IaC-works.jpg)
Popular IaC Tools:
1. Terraform An open-source declarative tool that offers pre-written modules to build and manage an infrastructure.
2. Chef:Â A configuration management tool that uses cookbooks and recipes to deploy the desired environment. Best used for Deploying and configuring applications using a pull-based approach.
3. Puppet:Â Popular tool for configuration management that follows a Client-Server Model. Puppet needs agents to be deployed on the target machines before the puppet can start managing them.
4. Ansible:Â Ansible is used for building infrastructure as well as deploying and configuring applications on top of them. Best used for Ad hoc analysis.
5. Packer:Â Unique tool that generates VM images (not running VMs) based on steps you provide. Best used for Baking compute images.
6. Vagrant:Â Builds VMs using a workflow. Best used for Creating pre-configured developer VMs within VirtualBox.