Infrastructure as Code (IaC) is an approach to managing data center server, storage, and networking infrastructure. IaC is meant to significantly simplify large-scale configuration and management. With traditional data center infrastructure management, every configuration change required manual action by operators and system administrators. With IaC, infrastructure configuration information is housed in standardized files, which can be read by software that maintains the state of the infrastructure. IaC can improve productivity and reliability because it eliminates manual configuration steps.
Infrastructure as Code and automation are two closely related terms, but mean very different things. Infrastructure as code is concerned with maintaining the configuration or state of the data center infrastructure in a known way. Automation deals more with the process for automatically pushing that state into the infrastructure and maintaining it.
Some IaC tools publicly available are: