Skip to content

XANi/go-dpp

Repository files navigation

DPP

Distributed puppet runner (WiP)

A small toolbox for running distributed puppet (each node downloads repo and runs it without central puppet master)

Currently implemented features:

  • Git as VCS
  • Git GPG signing supported (list of allowed keys per repo)
  • Ability to prepare deploy package ( dpp package, output in /tmp/dpp.tar.gz )
  • Locking (only one puppet run at a time even if multiple instances are running)
  • Signal support (USR1 to run puppet, USR2 to run repo update

Todo:

  • ability to connect to main demon and run with "hijacked" output (puppet running by demon piping output to CLI tool)
  • some kind of distributed KV support (+ Puppet glue code) to support inter-node coordination
  • post last run stat to other node(s) for monitoring
  • branch support

Install

required/recommended packages

apt install aptitude gnupg2 ca-certificates puppet git puppet-module-puppetlabs-cron-core puppet-module-puppetlabs-host-core puppet-module-puppetlabs-mount-core puppet-module-puppetlabs-sshkeys-core

Building

make

Then put example config in /etc/dpp/config.yaml and run it

How it works

  • Git fetch repos
  • If gpg is enabled, verify origin/ branch for commit (requires last commit on top of branch to be signed)
  • if commit is ok check it out to local dir
  • generate a list of module paths for puppet, then run puppet with generated module and manifest path, repeat

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published