Configuring a single server with the required software is a reasonably simple task. However, if numerous servers need to have the same or similar software and configurations installed on them, the process would use numerous man-hours to complete, which would deplete your already strained resources. Without some form of automation, this task can become nearly insurmountable. With this task in mind, new configuration management tools were developed to address the need to deploy new servers with premade configurations and updates, that allowed for a smoother and more manageable automation process. To keep these servers syncing and to manage updates across a broad swath of hosts in a data center or cloud environment, automation tools like Puppet, SaltStack, Chef, and Ansible meet this need.