0

I have a setup of a bunch of machines (Ubuntu servers) which are geographically separated and are used for developing the same code-base. Sometimes I need to install packages on the machine from my site and then ssh to all of the others and install the packages there too. I would like to automate this and if I've installed a new package on my machine (master) it will be automatically installed to the others. The process need not to be instant, it can be done over the night.

For this I've tried to use puppet with the 'package' resource, but this means I would need to add another entry for each newly installed package. Isn't there any other approach (like maybe checking the installed packages and insert a new entry with the new package)?

I've also looked at the apt module for puppet but couldn't find anything related directly to this.

030
  • 6,085
emmerich
  • 153

1 Answers1

2

There is no way of doing this that I'm aware.

I might suggest that you're approaching this with the wrong attitude somewhat.

The idea behind Puppet is not to do a bunch of manual work on a single server, than have that config replicated to other servers.

The idea is that you declare how you want your servers to look using Puppet, and then Puppet makes all the servers look that way.

I would recommend stopping installing packages manually altogether, where it can be avoided. Simply update your Puppet manifests when you want a new package to be installed.

Alongside that, make sure your manifests are being stored in version control like Git, so that you can track the changes as they were made.

jaxxstorm
  • 626