Infrastructure-as-Code Tools
Various configuration tools at different levels of abstraction (OS, VM, Cloud Landscape, etc.)
Ansible: Ansible is a OS-level configuration tool that differentiates itself from others by SSHing into remote hosts rather than requiring the installation of agents on client machines. For this reason, Ansible is very popular to boot strap systems such as Kubernetes clusters. Scripts are written in YAML.
Chef: Chef is a master-slave (requiring an additional workstation to control the master) configuration management system. Configuration is expressed, arguably, in a more imperative style than other similar solutions. Scripts are written using a Ruby-based DSL.
Packer: HashiCorp Packer is a tool for building virtual machine images in pretty much every single format: VMWare, Amazon AMI, etc.
Puppet: Puppet is a configuration management solution that uses a client/server model and attempts to describe OS configuration in a declarative basis. Scripts are written in JSON.
Salt: Salt is a modern contender to the established configuration management solutions. It supports both an agent-less model like Ansible as well as an agent model (agents are called minions). Scripts are written using a Pyhton-based DSL.
Terraform: HashiCorp Terraform is solution to define interoperable infrastructure as code so that the same scripts can be used across heterogeneous platforms (AWS, VMWare, etc.)