Shared Puppet infrastructure classes used by both privatepuppet and dm-puppet.
shared_infra- Empty anchor classshared_infra::base- Shared base resources (/root/bin, systemd-reload exec)shared_infra::docker_net- Docker bridge network named 'custom'shared_infra::promtail- Promtail log shipping agent (Docker or binary)shared_infra::linux_monitoring- node-exporter, cAdvisor, systemd-exportershared_infra::nginx_revproxy- Nginx reverse proxy in Dockershared_infra::monitoring- Full monitoring stack (Prometheus, Grafana, Alertmanager, Loki, Ping Exporter)shared_infra::unifi- UniFi Network Application controller (MongoDB, UniFi, unPoller, unifi-logs-loki)
shared_infra::goarch()- Returns Go architecture name for the current systemshared_infra::promtail_arch()- Returns architecture name for promtail downloads (includes ARM support)
- Puppet 8+
- puppetlabs/stdlib >= 9.0.0
- puppetlabs/mysql >= 16.0.0
- puppetlabs/docker
- puppetlabs/firewall (optional, for firewall rule management)
- puppet/archive (for binary installs)
Add to your Puppetfile:
mod 'shared_infra',
:git => 'https://github.com/jantman/puppet-shared_infra.git',
:ref => 'v0.1.0'gem install --user-install rspec-puppet puppetlabs_spec_helper puppet-lint
rake spec- Update the version in
metadata.json - Commit and push to
main
The GitHub Actions release workflow will automatically tag the commit and create a GitHub Release with a changelog of commits since the previous tag.