Skip to content
/ mgmt Public
forked from purpleidea/mgmt

A next generation config management prototype!

License

Notifications You must be signed in to change notification settings

berrange/mgmt

 
 

Repository files navigation

mgmt: next generation config management!

mgmt!

Go Report Card Build Status Documentation GoDoc IRC Jenkins COPR arch

Community:

Come join us on IRC in #mgmtconfig on Freenode! You may like the #mgmtconfig hashtag if you're on Twitter.

Status:

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!

Questions:

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!

Quick start:

  • 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 run make deps if you're comfortable with how we install them.
  • Run make build to get a freshly built mgmt 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!

Examples:

Please look in the examples/ folder for more examples!

Documentation:

Please see: the manually created documentation.md (also available as PDF) and the automatically generated GoDoc documentation.

Roadmap:

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!

Bugs:

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.

Dependencies:

  • 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)

Patches:

We'd love to have your patches! Please send them by email, or as a pull request.

On the web:

Happy hacking!

About

A next generation config management prototype!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 93.2%
  • Shell 4.1%
  • Makefile 1.9%
  • Python 0.8%