We are working on automating our infrastructure and we've setup a basic vagrant file to setup a puppet master and another machine which is an agent that is simulating our infrastructure.
We currently use r10k to handle our environments (both Hiera and Puppet) as well as we've made an attempt to build out dev env. using Vagrant. We think ti works well but it has a few problems
- We use a different repo for hiera and puppet which means that we have to maintain similar branches on each repo. This is not ideal because we can't branch into a feature and merge it back. We'd like to see a fix for this (even if it involves merging hieradata back to original repo).
- We have Zabbix monitoring setup using this, we have most of the work done but we need someone to continue to build on this in order to "replicate" our existing config. The module used is https://forge.puppet.com/wdijkerman/zabbix and we use exported resources to add them automatically to our monitoring system.
- We need to make some changes to that zabbix module in our fork (which we'd love to bring upstream eventually) to add the ability to add IPMI and SNMP ip in the exported resources. This is because we do need it for monitoring specific items.
- We need to add a zabbix::user resources so that we can create user within puppet and have their state maintained there. In addition, we use PagerDuty so we need the integration to be done with Zabbix within Puppet.
- At the end, we need to make sure that with a simple vagrant up, multi machines are spun up, puppet working right away inside them (master and agent), zabbix autoconfigured for those machines. We use a role/profile pattern.
Once that work is done, we'll have more projects together on moving more of our infrastructure to Puppet, we need someone who's autonomous and worked a lot with Puppet that can also come up with improvements aligned with our ideas, so if there's anything from the above that you recommend better tooling for, we're all ears.