Come join us on IRC in #mgmtconfig on Freenode! You may like the #mgmtconfig hashtag if you're on Twitter.
Mgmt is a fairly new project. We're working towards being minimally useful for production environments. We aren't feature complete for what we'd consider a 1.x release yet. With your help you'll be able to influence our design and get us there sooner!
Please join the #mgmtconfig IRC community! If you have a well phrased question that might benefit others, consider asking it by sending a patch to the documentation FAQ section. I'll merge your question, and a patch with the answer!
- Make sure you have golang version 1.6 or greater installed.
- If you do not have a GOPATH yet, create one and export it:
mkdir $HOME/gopath
export GOPATH=$HOME/gopath
- You might also want to add the GOPATH to your
~/.bashrc
or~/.profile
. - For more information you can read the GOPATH documentation.
- Next download the mgmt code base, and switch to that directory:
go get -u github.com/purpleidea/mgmt
cd $GOPATH/src/github.com/purpleidea/mgmt
- Get the remaining golang deps with
go get ./...
, or runmake deps
if you're comfortable with how we install them. - Run
make build
to get a freshly builtmgmt
binary. - Run
time ./mgmt run --yaml examples/graph0.yaml --converged-timeout=5 --tmp-prefix
to try out a very simple example! - To run continuously in the default mode of operation, omit the
--converged-timeout
option. - Have fun hacking on our future technology!
Please look in the examples/ folder for more examples!
Please see: the manually created DOCUMENTATION.md (also available as PDF) and the automatically generated GoDoc documentation.
Please see: TODO.md for a list of upcoming work and TODO items. Please get involved by working on one of these items or by suggesting something else! Feel free to grab one of the straightforward #mgmtlove issues if you're a first time contributor to the project or if you're unsure about what to hack on!
Please set the DEBUG
constant in main.go to true
, and post the logs when you report the issue.
Bonus points if you provide a shell or OMV reproducible test case.
Feel free to read my article on debugging golang programs.
- golang 1.6 or higher (required, available in most distros)
- golang libraries (required, available with
go get
)
go get github.com/coreos/etcd/client
go get gopkg.in/yaml.v2
go get gopkg.in/fsnotify.v1
go get github.com/urfave/cli
go get github.com/coreos/go-systemd/dbus
go get github.com/coreos/go-systemd/util
go get github.com/coreos/pkg/capnslog
go get github.com/rgbkrk/libvirt-go
- stringer (optional for building), available as a package on some platforms, otherwise via
go get
go get golang.org/x/tools/cmd/stringer
- pandoc (optional, for building a pdf of the documentation)
- graphviz (optional, for building a visual representation of the graph)
We'd love to have your patches! Please send them by email, or as a pull request.
- James Shubin; blog: Next generation configuration mgmt
- James Shubin; video: Introductory recording from DevConf.cz 2016
- James Shubin; video: Introductory recording from CfgMgmtCamp.eu 2016
- Julian Dunn; video: On mgmt at CfgMgmtCamp.eu 2016
- Walter Heck; slides: On mgmt at CfgMgmtCamp.eu 2016
- Marco Marongiu; blog: On mgmt
- Felix Frank; blog: From Catalog To Mgmt (on puppet to mgmt "transpiling")
- James Shubin; blog: Automatic edges in mgmt (...and the pkg resource)
- James Shubin; blog: Automatic grouping in mgmt
- John Arundel; tweet: “Puppet’s days are numbered.”
- Felix Frank; blog: Puppet, Meet Mgmt (on puppet to mgmt internals)
- Felix Frank; blog: Puppet Powered Mgmt (puppet to mgmt tl;dr)
- James Shubin; blog: Automatic clustering in mgmt
- James Shubin; video: Recording from CoreOSFest 2016
- James Shubin; video: Recording from DebConf16 (Slides)
- Felix Frank; blog: Edging It All In (puppet and mgmt edges)
- Felix Frank; blog: Translating All The Things (puppet to mgmt translation warnings)
- James Shubin; video: Recording from systemd.conf 2016
- James Shubin; blog: Remote execution in mgmt
- James Shubin; video: Recording from High Load Strategy 2016
Happy hacking!