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 +ExecStartPre=@PKGLIBDIR@/ensure-dirs
39 +ExecStart=@PREFIX@/sbin/ganeti-confd $CONFD_ARGS
41 +Group=@GNTCONFDGROUP@
42 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-confd.pid
46 +WantedBy=ganeti.target
47 --- ganeti-2.6.2/doc/examples.orig/ganeti-masterd.service.in 1970-01-01 01:00:00.000000000 +0100
48 +++ ganeti-2.6.2/doc/examples/ganeti-masterd.service.in 2013-06-01 15:55:37.611560663 +0200
51 +Description=Ganeti Masterd
52 +Requires=ganeti-noded.service
53 +After=ganeti-noded.service
57 +ConditionPathExists=@LOCALSTATEDIR@/lib/ganeti/server.pem
58 +EnvironmentFile=-/etc/sysconfig/ganeti
59 +ExecStartPre=@PKGLIBDIR@/ensure-dirs
60 +ExecStart=@PREFIX@/sbin/ganeti-masterd $MASTERD_ARGS
62 +Group=@GNTDAEMONSGROUP@
63 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-masterd.pid
64 +# TODO: Should KillMode be process?
65 +KillMode=control-group
68 +WantedBy=ganeti.target
69 --- ganeti-2.6.2/doc/examples.orig/ganeti-noded.service.in 1970-01-01 01:00:00.000000000 +0100
70 +++ ganeti-2.6.2/doc/examples/ganeti-noded.service.in 2013-06-01 15:55:37.631560853 +0200
73 +Description=Ganeti Noded
77 +ConditionPathExists=@LOCALSTATEDIR@/lib/ganeti/server.pem
78 +EnvironmentFile=-/etc/sysconfig/ganeti
79 +ExecStartPre=@PKGLIBDIR@/ensure-dirs
80 +ExecStart=@PREFIX@/sbin/ganeti-noded $NODED_ARGS
82 +Group=@GNTDAEMONSGROUP@
83 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-noded.pid
84 +KillMode=control-group
87 +WantedBy=ganeti.target
88 --- ganeti-2.6.2/doc/examples.orig/ganeti-rapi.service.in 1970-01-01 01:00:00.000000000 +0100
89 +++ ganeti-2.6.2/doc/examples/ganeti-rapi.service.in 2013-06-01 15:55:37.644894309 +0200
92 +Description=Ganeti RAPI
93 +Requires=ganeti-noded.service ganeti-masterd.service
94 +After=ganeti-masterd.service
98 +ConditionPathExists=@LOCALSTATEDIR@/lib/ganeti/server.pem
99 +EnvironmentFile=-/etc/sysconfig/ganeti
100 +ExecStartPre=@PKGLIBDIR@/ensure-dirs
101 +ExecStart=@PREFIX@/sbin/ganeti-rapi $RAPI_ARGS
103 +Group=@GNTRAPIGROUP@
104 +PIDFile=@LOCALSTATEDIR@/run/ganeti/ganeti-rapi.pid
108 +WantedBy=ganeti.target
109 --- ganeti-2.6.2/doc/examples.orig/ganeti.target 1970-01-01 01:00:00.000000000 +0100
110 +++ ganeti-2.6.2/doc/examples/ganeti.target 2013-06-01 15:55:37.661561129 +0200
116 +WantedBy=multi-user.target
117 --- ganeti-2.6.2/doc/examples.orig/README.systemd 1970-01-01 01:00:00.000000000 +0100
118 +++ ganeti-2.6.2/doc/examples/README.systemd 2013-06-01 15:55:37.661561129 +0200
120 +To register the services with ganeti.target (order doesn't matter):
122 + systemctl enable ganeti-noded ganeti-masterd ganeti-rapi
126 + systemctl enable ganeti-confd
128 +To signal to the ganeti target that it should start at boot:
130 + systemctl enable ganeti.target
132 +Note that the files aren't at all tested beyond just being able to start the
133 +daemons. I don't have Ganeti running yet, so I can't test stopping.