1 http://code.google.com/p/ganeti/issues/detail?id=444
3 --- ganeti-2.6.2/Makefile.am~ 2012-12-21 15:38:52.000000000 +0100
4 +++ ganeti-2.6.2/Makefile.am 2013-06-01 16:01:46.594026366 +0200
8 doc/examples/bash_completion \
9 + doc/examples/ganeti.target \
10 lib/_generated_rpc.py \
14 doc/examples/ganeti.cron \
15 doc/examples/ganeti.initd \
16 doc/examples/gnt-config-backup \
17 - doc/examples/hooks/ipsec
18 + doc/examples/hooks/ipsec \
19 + doc/examples/ganeti-confd.service \
20 + doc/examples/ganeti-masterd.service \
21 + doc/examples/ganeti-noded.service \
22 + doc/examples/ganeti-rapi.service
24 nodist_pkgpython_PYTHON = \
25 $(BUILT_PYTHON_SOURCES)
26 --- ganeti-2.6.2/doc/examples.orig/ganeti-confd.service.in 1970-01-01 01:00:00.000000000 +0100
27 +++ ganeti-2.6.2/doc/examples/ganeti-confd.service.in 2013-06-01 15:55:37.594893846 +0200
30 +Description=Ganeti Confd
31 +Requires=ganeti-noded.service ganeti-masterd.service ganeti-rapi.service
32 +After=ganeti-rapi.service
36 +ConditionPathExists=@LOCALSTATEDIR@/lib/ganeti/server.pem
37 +EnvironmentFile=-/etc/sysconfig/ganeti
38 +ExecStart=@PREFIX@/sbin/ganeti-confd $CONFD_ARGS
40 +Group=@GNTCONFDGROUP@
41 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-confd.pid
45 +WantedBy=ganeti.target
46 --- ganeti-2.6.2/doc/examples.orig/ganeti-masterd.service.in 1970-01-01 01:00:00.000000000 +0100
47 +++ ganeti-2.6.2/doc/examples/ganeti-masterd.service.in 2013-06-01 15:55:37.611560663 +0200
50 +Description=Ganeti Masterd
51 +Requires=ganeti-noded.service
52 +After=ganeti-noded.service
56 +ConditionPathExists=@LOCALSTATEDIR@/lib/ganeti/server.pem
57 +EnvironmentFile=-/etc/sysconfig/ganeti
58 +ExecStart=@PREFIX@/sbin/ganeti-masterd $MASTERD_ARGS
60 +Group=@GNTDAEMONSGROUP@
61 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-masterd.pid
62 +# TODO: Should KillMode be process?
63 +KillMode=control-group
66 +WantedBy=ganeti.target
67 --- ganeti-2.6.2/doc/examples.orig/ganeti-noded.service.in 1970-01-01 01:00:00.000000000 +0100
68 +++ ganeti-2.6.2/doc/examples/ganeti-noded.service.in 2013-06-01 15:55:37.631560853 +0200
71 +Description=Ganeti Noded
75 +ConditionPathExists=@LOCALSTATEDIR@/lib/ganeti/server.pem
76 +EnvironmentFile=-/etc/sysconfig/ganeti
77 +ExecStart=@PREFIX@/sbin/ganeti-noded $NODED_ARGS
79 +Group=@GNTDAEMONSGROUP@
80 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-noded.pid
81 +KillMode=control-group
84 +WantedBy=ganeti.target
85 --- ganeti-2.6.2/doc/examples.orig/ganeti-rapi.service.in 1970-01-01 01:00:00.000000000 +0100
86 +++ ganeti-2.6.2/doc/examples/ganeti-rapi.service.in 2013-06-01 15:55:37.644894309 +0200
89 +Description=Ganeti RAPI
90 +Requires=ganeti-noded.service ganeti-masterd.service
91 +After=ganeti-masterd.service
95 +ConditionPathExists=@LOCALSTATEDIR@/lib/ganeti/server.pem
96 +EnvironmentFile=-/etc/sysconfig/ganeti
97 +ExecStart=@PREFIX@/sbin/ganeti-rapi $RAPI_ARGS
100 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-rapi.pid
104 +WantedBy=ganeti.target
105 --- ganeti-2.6.2/doc/examples.orig/ganeti.target 1970-01-01 01:00:00.000000000 +0100
106 +++ ganeti-2.6.2/doc/examples/ganeti.target 2013-06-01 15:55:37.661561129 +0200
112 +WantedBy=multi-user.target
113 --- ganeti-2.6.2/doc/examples.orig/README.systemd 1970-01-01 01:00:00.000000000 +0100
114 +++ ganeti-2.6.2/doc/examples/README.systemd 2013-06-01 15:55:37.661561129 +0200
116 +To register the services with ganeti.target (order doesn't matter):
118 + systemctl enable ganeti-noded ganeti-masterd ganeti-rapi
122 + systemctl enable ganeti-confd
124 +To signal to the ganeti target that it should start at boot:
126 + systemctl enable ganeti.target
128 +Note that the files aren't at all tested beyond just being able to start the
129 +daemons. I don't have Ganeti running yet, so I can't test stopping.