So I currently work for an MSP and we have many small businesses where things are pretty simple. I like to setup a small VM or repurpose a desktop PC and run basic monitoring software (OpenNMS, phpIPAM, Rancid, syslogging, etc) to have something I can go to for network management and tracking down problems. This has been noticed by management, and they want me to make something slightly more structured. I like the challenge, so I'm looking for a way to heavily automate this so I can hand it off when I leave the company. In my head I imagine this being a single device at each client site that has the same hardware and basic software for all sites. It would run the same basic FOSS stack of OpenNMS, phpIPAM, Rancid/Oxidised, syslog. Where possible each device will be put in a seperate network segment with just the required ports open. Each device will VPN back to an isolated server in our office for management. This part is easy, and its done. There are just so many tools out there now I'm feeling a little overwhelmed, so looking for some advice for the rest. Goal is to: 1) Automate the initial setup (maybe just dd a standard image?) 2) Automate the base configuration (puppet? install software, basic config) 3) Backup/track the unique changes on each device 4) Push out/manage changes to all devices at once (puppet again?) My current test environment is just a bunch of raspberry pi's - it's all I have on hand and they are low power and simple to work with. For actual testing once I have something working I'll be using something like Intel NUC and probably Ubuntu or Debian.