mgmt

command module
v0.0.0-...-9368c7e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2016 License: AGPL-3.0 Imports: 23 Imported by: 0

README

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.
  • Clone the repository recursively, eg: git clone --recursive https://github.com/purpleidea/mgmt/.
  • Get the remaining golang dependencies on your own, 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 --file 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: DOCUMENTATION.md or PDF.

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
    
  • 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 patches! Please send them by email, or as a pull request.

On the web:

Happy hacking!

Documentation

Overview

Package main provides the main entrypoint for using the `mgmt` software.

Directories

Path Synopsis
Package converger is a facility for reporting the converged state.
Package converger is a facility for reporting the converged state.
Package etcd implements the distributed key value store integration.
Package etcd implements the distributed key value store integration.
Package event provides some primitives that are used for message passing.
Package event provides some primitives that are used for message passing.
Package gconfig provides the facilities for loading a graph from a yaml file.
Package gconfig provides the facilities for loading a graph from a yaml file.
Package global holds some global variables that are used throughout the code.
Package global holds some global variables that are used throughout the code.
Package pgraph represents the internal "pointer graph" that we use.
Package pgraph represents the internal "pointer graph" that we use.
Package puppet provides the integration entrypoint for the puppet language.
Package puppet provides the integration entrypoint for the puppet language.
Package remote provides the remoting facilities for agentless execution.
Package remote provides the remoting facilities for agentless execution.
Package util contains a collection of miscellaneous utility functions.
Package util contains a collection of miscellaneous utility functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL