@@ -10,10 +10,11 @@ sysadmin's main goal is to be a system configuration manager. It accomplishes
10
10
that by providing a typed key value database, on which you the user can create
11
11
"hooks". These hooks allow you to do one or both of the following things, in
12
12
response to keys or groups of keys changing their values:
13
- 1) Render jinja2 based templates and save them to the system
14
- 2) Run arbitrary scripts
15
13
16
- For example, say you have a set of keys whose values reflect dhcp settings:
14
+ 1 . Render jinja2 based templates and save them to the system
15
+ 2 . Run arbitrary scripts
16
+
17
+ For example, say you have a set of keys whose values reflect DHCP settings:
17
18
18
19
``` bash
19
20
network.dhcp.endip = " 192.168.99.200"
@@ -25,10 +26,11 @@ network.dhcp.static_assignments = []
25
26
```
26
27
27
28
Two hooks exist to service these keys:
28
- 1) A jinja2 template which renders a [ dnsmasq] ( http://www.thekelleys.org.uk/dnsmasq/doc.html )
29
- configuration file which reflects the current values
30
- 2) A simple redirection script which knows to restart the dnsmasq service
31
- via systemd.
29
+
30
+ 1 . A jinja2 template which renders a [ dnsmasq] ( http://www.thekelleys.org.uk/dnsmasq/doc.html )
31
+ configuration file which reflects the current values
32
+ 2 . A simple redirection script which knows to restart the dnsmasq service
33
+ via systemd
32
34
33
35
sysadmin allows you to change the value of one or more of these keys, then
34
36
` commit ` them all at once, at which point the 2 hooks above are run. From a
@@ -37,20 +39,20 @@ takes care of the messy, system level details via its hooks.
37
39
38
40
## Dependencies
39
41
40
- sysadmin's dependencies are codified in its CMakeLists.txt files, but the key
42
+ sysadmin's dependencies are codified in its ` CMakeLists.txt ` files, but the key
41
43
ones are as follows:
42
44
43
- - decibel-cpp, which is included with sysadmin and built when sysadmin is
44
- built. It is a C++ wrapper around libuv, and additional abstractions built
45
- with folly
46
- - [libuv](https://github.com/libuv/libuv) is a C event loop library
47
- - [boost](http://www.boost.org/) is boost
48
- - [folly](https://github.com/facebook/folly) is a C++ library, primarily
49
- used for its excellent futures code
50
- - [protobufs](https://developers.google.com/protocol-buffers/), specifically
51
- proto 2, provides the API to sysadmin
52
- - [yaml-cpp](https://github.com/jbeder/yaml-cpp) provides YAML config file
53
- support
45
+ - decibel-cpp, which is included with sysadmin and built when sysadmin is
46
+ built. It is a C++ wrapper around libuv, and additional abstractions built
47
+ with folly
48
+ - [ libuv] ( https://github.com/libuv/libuv ) is a C event loop library
49
+ - [ boost] ( http://www.boost.org/ ) is boost
50
+ - [ folly] ( https://github.com/facebook/folly ) is a C++ library, primarily
51
+ used for its excellent futures code
52
+ - [ protobufs] ( https://developers.google.com/protocol-buffers/ ) provides the API
53
+ to sysadmin
54
+ - [ yaml-cpp] ( https://github.com/jbeder/yaml-cpp ) provides YAML config file
55
+ support
54
56
55
57
## Systemd Integration
56
58
@@ -60,8 +62,8 @@ In order to build sysadmin with systemd notify support you need to pass
60
62
` -DSYSADMIN_USE_SD_NOTIFY ` during step 3 outlined below. When building sysadmin
61
63
in this configuration ` libsystemd ` becomes a required dependency.
62
64
63
- There is an a systemd service definition which incorporates this functionality
64
- located [ here ] ( configs/prod/sysadmin-notify. service) .
65
+ See [ sysadmin-notify. service] ( configs/prod/sysadmin-notify.service ) for a
66
+ systemd service definition that incorporates this functionality .
65
67
66
68
## Development
67
69
@@ -76,16 +78,16 @@ make check
76
78
make
77
79
```
78
80
79
- ` make check ` runs only sysadmin's tests. If you wish to run the decibel-cpp
81
+ ` make check ` runs only sysadmin's tests. If you wish to run the ` decibel-cpp `
80
82
tests, run ` make decibel-check ` .
81
83
82
84
## Dockerized Development
83
85
84
- For consistency it's recommended to build and test in Docker.
85
- We will try an up to date dependency image published to
86
- [ Dockerhub ] ( https://hub.docker.com/r/starryoss/sysadmin-build/ ) .
86
+ For consistency it's recommended to build and test in Docker. We will try to
87
+ keep the dependencies in the image on [ Dockerhub ] ( https://hub.docker.com/r/starryoss/sysadmin-build/ )
88
+ up to date .
87
89
88
- The docker commands are wrapped in the docker_control.sh script.
90
+ The docker commands are wrapped in the ` docker_control.sh ` script.
89
91
90
92
``` bash
91
93
# Make sure you have submodules
0 commit comments