Files
mgmt/README.md
Paul Morgan f0d6cfaae4 add systemd unit file
Update the spec file with the rpm macro to put the unit file
in the system-wide unit file directory based on:

    [root@1713bbf19a0b /]# rpmbuild --eval '%{_unitdir}'
    /usr/lib/systemd/system

Allow user to create a drop directory to specify options
via environment variables.

Resolves https://github.com/purpleidea/mgmt/issues/12.
2016-04-26 02:19:24 +00:00

5.7 KiB

mgmt: This is: mgmt!

Build Status Documentation IRC Jenkins COPR

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 freshly 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!

Systemd:

See misc/mgmt.service for a sample systemd unit file. This unit file is part of the RPM.

To specify your custom options for mgmt on a systemd distro:

sudo mkdir -p /etc/systemd/system/mgmt.service.d/

cat > /etc/systemd/system/mgmt.service.d/env.conf <<EOF
# Environment variables:
MGMT_SEED_ENDPOINT=http://127.0.0.1:2379
MGMT_CONVERGED_TIMEOUT=-1
MGMT_MAX_RUNTIME=0

# Other CLI options if necessary.
#OPTS="--max-runtime=0"
EOF

sudo systemctl daemon-reload

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

On the web:

Happy hacking!