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.
5.7 KiB
mgmt: This is: mgmt!
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 depsif you're comfortable with how we install them. - Run
make buildto get a freshly builtmgmtbinary. - Run
cd $(mktemp --tmpdir -d tmp.XXX) && etcdto get etcd running. Themgmtsoftware will do this automatically for you in the future. - Run
time ./mgmt run --file examples/graph0.yaml --converged-timeout=1to try out a very simple example! - To run continuously in the default mode of operation, omit the
--converged-timeoutoption. - 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 getgo 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:
- Introductory blog post: https://ttboj.wordpress.com/2016/01/18/next-generation-configuration-mgmt/
- Introductory recording from DevConf.cz 2016: https://www.youtube.com/watch?v=GVhpPF0j-iE&html5=1
- Introductory recording from CfgMgmtCamp.eu 2016: https://www.youtube.com/watch?v=fNeooSiIRnA&html5=1
- Julian Dunn at CfgMgmtCamp.eu 2016: https://www.youtube.com/watch?v=kfF9IATUask&t=1949&html5=1
- Walter Heck at CfgMgmtCamp.eu 2016: http://www.slideshare.net/olindata/configuration-management-time-for-a-4th-generation/3
- Marco Marongiu on mgmt: http://syslog.me/2016/02/15/leap-or-die/
- Felix Frank on puppet to mgmt "transpiling" https://ffrank.github.io/features/2016/02/18/from-catalog-to-mgmt/
- Blog post on automatic edges and the pkg resource: https://ttboj.wordpress.com/2016/03/14/automatic-edges-in-mgmt/
- Blog post on automatic grouping: https://ttboj.wordpress.com/2016/03/30/automatic-grouping-in-mgmt/
Happy hacking!




