Gurp is an illumos configuration management tool.
Hosts are described in a thin Janet DSL.
(section "ntp"
(pkg/ensure "service/network/ntpsec")
(directory/ensure "/var/lib/ntp"
:owner "root"
:group "daemon")
(file/ensure "/etc/ntp.conf"
:from "ntp.conf"
:label "ntp-conf")
(svc/ensure "ntp"
:state "online"
:restarted-by [(this :file :ntp-conf)]))
If you want to know more:
- An introductory walkthrough of Gurp and Janet.
- Documentation for all the "doers" - the things that do the things.
- An overview of the built-in Janet helpers that make life easier.
- Examples of real configurations taken from my own systems and used in acceptance tests.
- A series of informal blog articles which talk about the design, development, use, successes, shortcomings, and future of Gurp.
Assuming you are on an illumos system with Rust, check out the repo and
$ CFLAGS=-std=c99 cargo install --path cli