Infrastructure as Code
Build IT infrastructure that can be automatically managed and provisioned through code, rather than manually
Infrastructure as Code (IaC) means the process of managing and provisioning computing infrastructure (processes, bare-metal servers, virtual servers, etc.) and their configuration through machine-processable definition files, rather than physical hardware configuration or the use of interactive configuration tools.
Infrastructure as code covers writing code to manage configurations and automate provisioning of infrastructure in addition to deployments. This involves using tested and proven software development practices that are already being used in application development, like version control, testing, small deployments, use of design patterns etc. So, code is written to provision and manage your server, in addition to automating processes.
For building IaC we use:
Ansible. Ansible manages machines in an agent-less manner. Management method: Push. Manager connects to each host and applies new configuration.
Puppet. Puppet requires agent installed on the machine in order to manage it. Management method: Pull. Each host periodically checks manager for the new configuration and pulls it.