We add templates for systemd service files and systemd targets under doc/examples/systemd and flag them to be built. The generated files are also added to .gitignore.
Signed-off-by: Apollon Oikonomopoulos <[email protected]> --- .gitignore | 1 + Makefile.am | 9 ++++++++- doc/examples/systemd/ganeti-common.service.in | 6 ++++++ doc/examples/systemd/ganeti-confd.service.in | 17 +++++++++++++++++ doc/examples/systemd/ganeti-luxid.service.in | 18 ++++++++++++++++++ doc/examples/systemd/ganeti-master.target | 8 ++++++++ doc/examples/systemd/ganeti-masterd.service.in | 18 ++++++++++++++++++ doc/examples/systemd/ganeti-mond.service.in | 14 ++++++++++++++ doc/examples/systemd/ganeti-node.target | 8 ++++++++ doc/examples/systemd/ganeti-noded.service.in | 17 +++++++++++++++++ doc/examples/systemd/ganeti-rapi.service.in | 19 +++++++++++++++++++ doc/examples/systemd/ganeti.service | 18 ++++++++++++++++++ doc/examples/systemd/ganeti.target | 8 ++++++++ 13 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 doc/examples/systemd/ganeti-common.service.in create mode 100644 doc/examples/systemd/ganeti-confd.service.in create mode 100644 doc/examples/systemd/ganeti-luxid.service.in create mode 100644 doc/examples/systemd/ganeti-master.target create mode 100644 doc/examples/systemd/ganeti-masterd.service.in create mode 100644 doc/examples/systemd/ganeti-mond.service.in create mode 100644 doc/examples/systemd/ganeti-node.target create mode 100644 doc/examples/systemd/ganeti-noded.service.in create mode 100644 doc/examples/systemd/ganeti-rapi.service.in create mode 100644 doc/examples/systemd/ganeti.service create mode 100644 doc/examples/systemd/ganeti.target diff --git a/.gitignore b/.gitignore index 8a6d1ac..801316e 100644 --- a/.gitignore +++ b/.gitignore @@ -83,6 +83,7 @@ /doc/examples/ganeti-node-role.ocf /doc/examples/gnt-config-backup /doc/examples/hooks/ipsec +/doc/examples/systemd/ganeti-*.service # lib /lib/_constants.py diff --git a/Makefile.am b/Makefile.am index eb39b74..0df7ea9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -337,7 +337,14 @@ BUILT_EXAMPLES = \ doc/examples/ganeti-master-role.ocf \ doc/examples/ganeti-node-role.ocf \ doc/examples/gnt-config-backup \ - doc/examples/hooks/ipsec + doc/examples/hooks/ipsec \ + doc/examples/systemd/ganeti-common.service \ + doc/examples/systemd/ganeti-confd.service \ + doc/examples/systemd/ganeti-luxid.service \ + doc/examples/systemd/ganeti-masterd.service \ + doc/examples/systemd/ganeti-mond.service \ + doc/examples/systemd/ganeti-noded.service \ + doc/examples/systemd/ganeti-rapi.service dist_ifup_SCRIPTS = \ tools/kvm-ifup-os diff --git a/doc/examples/systemd/ganeti-common.service.in b/doc/examples/systemd/ganeti-common.service.in new file mode 100644 index 0000000..e267323 --- /dev/null +++ b/doc/examples/systemd/ganeti-common.service.in @@ -0,0 +1,6 @@ +[Unit] +Description = Ganeti one-off setup + +[Service] +Type = oneshot +ExecStart = @PKGLIBDIR@/ensure-dirs diff --git a/doc/examples/systemd/ganeti-confd.service.in b/doc/examples/systemd/ganeti-confd.service.in new file mode 100644 index 0000000..db3a913 --- /dev/null +++ b/doc/examples/systemd/ganeti-confd.service.in @@ -0,0 +1,17 @@ +[Unit] +Description = Ganeti configuration daemon (confd) +Documentation = man:ganeti-confd(8) +Requires = ganeti-common.service +After = ganeti-common.service +PartOf = ganeti-node.target +ConditionPathExists = @LOCALSTATEDIR@/lib/ganeti/config.data + +[Service] +Type = simple +User = @GNTCONFDUSER@ +Group = @GNTCONFDGROUP@ +ExecStart = @SBINDIR@/ganeti-confd -f +Restart = on-failure + +[Install] +WantedBy = ganeti-node.target ganeti.target diff --git a/doc/examples/systemd/ganeti-luxid.service.in b/doc/examples/systemd/ganeti-luxid.service.in new file mode 100644 index 0000000..2fbcb4a --- /dev/null +++ b/doc/examples/systemd/ganeti-luxid.service.in @@ -0,0 +1,18 @@ +[Unit] +Description = Ganeti query daemon (luxid) +Documentation = man:ganeti-luxid(8) +Requires = ganeti-common.service +After = ganeti-common.service +PartOf = ganeti-master.target +ConditionPathExists = @LOCALSTATEDIR@/lib/ganeti/config.data + +[Service] +Type = simple +User = @GNTLUXIDUSER@ +Group = @GNTLUXIDGROUP@ +ExecStart = @SBINDIR@/ganeti-luxid -f +Restart = on-failure +SuccessExitStatus = 0 11 + +[Install] +WantedBy = ganeti-master.target ganeti.target diff --git a/doc/examples/systemd/ganeti-master.target b/doc/examples/systemd/ganeti-master.target new file mode 100644 index 0000000..ec1a980 --- /dev/null +++ b/doc/examples/systemd/ganeti-master.target @@ -0,0 +1,8 @@ +[Unit] +Description = Ganeti master functionality +Documentation = man:ganeti(7) +After = syslog.target +PartOf = ganeti.target + +[Install] +WantedBy = ganeti.target diff --git a/doc/examples/systemd/ganeti-masterd.service.in b/doc/examples/systemd/ganeti-masterd.service.in new file mode 100644 index 0000000..2547dd3 --- /dev/null +++ b/doc/examples/systemd/ganeti-masterd.service.in @@ -0,0 +1,18 @@ +[Unit] +Description = Ganeti master daemon (masterd) +Documentation = man:ganeti-masterd(8) +Requires = ganeti-common.service +After = ganeti-common.service +PartOf = ganeti-master.target +ConditionPathExists = @LOCALSTATEDIR@/lib/ganeti/config.data + +[Service] +Type = simple +User = @GNTMASTERUSER@ +Group = @GNTMASTERDGROUP@ +ExecStart = @SBINDIR@/ganeti-masterd -f +Restart = on-failure +SuccessExitStatus = 0 11 + +[Install] +WantedBy = ganeti-master.target ganeti.target diff --git a/doc/examples/systemd/ganeti-mond.service.in b/doc/examples/systemd/ganeti-mond.service.in new file mode 100644 index 0000000..e526ae0 --- /dev/null +++ b/doc/examples/systemd/ganeti-mond.service.in @@ -0,0 +1,14 @@ +[Unit] +Description = Ganeti monitoring daemon (mond) +Documentation = man:ganeti-mond(8) +Requires = ganeti-common.service +After = ganeti-common.service +PartOf = ganeti-node.target + +[Service] +Type = simple +ExecStart = @SBINDIR@/ganeti-mond -f +Restart = on-failure + +[Install] +WantedBy = ganeti-node.target ganeti.target diff --git a/doc/examples/systemd/ganeti-node.target b/doc/examples/systemd/ganeti-node.target new file mode 100644 index 0000000..d38ba28 --- /dev/null +++ b/doc/examples/systemd/ganeti-node.target @@ -0,0 +1,8 @@ +[Unit] +Description = Ganeti node functionality +Documentation = man:ganeti(7) +After = syslog.service +PartOf = ganeti.target + +[Install] +WantedBy = ganeti.target diff --git a/doc/examples/systemd/ganeti-noded.service.in b/doc/examples/systemd/ganeti-noded.service.in new file mode 100644 index 0000000..64d1ed7 --- /dev/null +++ b/doc/examples/systemd/ganeti-noded.service.in @@ -0,0 +1,17 @@ +[Unit] +Description = Ganeti node daemon (noded) +Documentation = man:ganeti-noded(8) +After = ganeti-common.service +Requires = ganeti-common.service +PartOf = ganeti-node.target +ConditionPathExists = @LOCALSTATEDIR@/lib/ganeti/server.pem + +[Service] +Type = simple +ExecStart = @SBINDIR@/ganeti-noded -f +Restart = on-failure +# Important: do not kill any KVM processes +KillMode = process + +[Install] +WantedBy = ganeti-node.target ganeti.target diff --git a/doc/examples/systemd/ganeti-rapi.service.in b/doc/examples/systemd/ganeti-rapi.service.in new file mode 100644 index 0000000..260473b --- /dev/null +++ b/doc/examples/systemd/ganeti-rapi.service.in @@ -0,0 +1,19 @@ +[Unit] +Description = Ganeti RAPI daemon (rapi) +Documentation = man:ganeti-rapi(8) +Requires = ganeti-common.service +Requisite = ganeti-masterd.service +After = ganeti-common.service +PartOf = ganeti-master.target +ConditionPathExists = @LOCALSTATEDIR@/lib/ganeti/rapi.pem + +[Service] +Type = simple +User = @GNTRAPIUSER@ +Group = @GNTRAPIGROUP@ +ExecStart = @SBINDIR@/ganeti-rapi -f +SuccessExitStatus = 0 11 +Restart = on-failure + +[Install] +WantedBy = ganeti-master.target ganeti.target diff --git a/doc/examples/systemd/ganeti.service b/doc/examples/systemd/ganeti.service new file mode 100644 index 0000000..f4ada5d --- /dev/null +++ b/doc/examples/systemd/ganeti.service @@ -0,0 +1,18 @@ +# This is a dummy service, provided only for compatibility with SysV. +# Systemd will automatically create a SysV service called +# ganeti.service, attempting to start the initscript. Since there is no +# way to tell systemd that the initscript acts as ganeti.target (and not +# ganeti.service), we create a stub service requiring ganeti.target. +# +# This service is for compatibility only and so will not be marked for +# installation. + +[Unit] +Description = Dummy Ganeti SysV compatibility service +Documentation = man:ganeti(7) +After = ganeti.target +Requires = ganeti.target + +[Service] +Type = oneshot +ExecStart = /bin/true diff --git a/doc/examples/systemd/ganeti.target b/doc/examples/systemd/ganeti.target new file mode 100644 index 0000000..fc2a3bd --- /dev/null +++ b/doc/examples/systemd/ganeti.target @@ -0,0 +1,8 @@ +[Unit] +Description = Ganeti virtualization cluster manager +Documentation = man:ganeti(7) +PartOf = ganeti.service + +[Install] +WantedBy = multi-user.target +Also = ganeti-node.target ganeti-master.target -- 1.9.1
