Skip to content
forked from purpleidea/mgmt

A next generation config management prototype!

License

Notifications You must be signed in to change notification settings

walterheck/mgmt

 
 

Repository files navigation

mgmt: This is: mgmt!

Build Status Documentation IRC Jenkins

Community:

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

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:

  • Either get the golang dependencies on your own, or run make deps if you're comfortable with how we install them.
  • Run make build to get a fresh built mgmt binary.
  • Run cd $(mktemp --tmpdir -d tmp.XXX) && etcd to get etcd running. The mgmt software will do this automatically for you in the future.
  • Run time ./mgmt run --file examples/graph0.yaml --converged-timeout=1 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: DOCUMENTATION.md or PDF.

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. There are currently a few known bugs which I hope to squash soon.

Notes:

  • This is currently a research project into next generation config management technologies!
  • This is my first complex project in golang, please notify me of any issues.
  • I have some well thought out designs for the future of this project, which I'll try and write up clearly and publish as soon as possible.
  • The interfaces and code are not yet stable. Please run in development environments only!
  • This design is the result of ideas I've had from hacking on advanced config management projects.
  • I first started hacking on this in ~2013, even though I had very little time for it.
  • I've published a number of articles about this tool:
  • There are some screencasts available:
    • TODO

Dependencies:

  • golang 1.4 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/codegangsta/cli
      go get github.com/coreos/go-systemd/dbus
      go get github.com/coreos/go-systemd/util
    
  • stringer (required 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 patch! Please send it by email, or as a pull request.

Happy hacking!

About

A next generation config management prototype!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 87.3%
  • Shell 9.3%
  • Python 2.1%
  • Makefile 1.3%