We are a startup that is just getting up to speed and running into the problem of managing hundreds of machines, and having to do nightly and weekly releases to all of them as well as managing their configurations.
This is typically a job for one or more sysadmins, but in our case we need to do this with just one. We looked into tools such as Puppet and Distributed Shell, but none of them seem to fit what we are looking for. For each machine, need to build some linux modules from source, update packages, set stack and linux configurations, pull down source code from Git, and update database schema definitions all in an automated way. The catch is that we need to do this all with approvals.
Are there any tools out there that will allow us to stage commands to be approved before being executed?
Puppet seemed to be the closest to what we need, but building from source seems difficult to set up and requires an additional port to be open (we only have port 22 available).