Building a server from ground zero to host a production app could be a real pain. The whole process of installing all the dependencies one by one with their appropriate version, and keeping necessary configs in check is very tedious. There are a few tools to automate these tasks, such as, Chef, Puppet, F*cking Shell Script etc. but they come with their own DSL which requires a learning curve. None of them work out of the box.