From: Kefu Chai Date: Tue, 27 Feb 2018 08:42:48 +0000 (+0800) Subject: cmake,deb: set EnvironmentFile using cmake X-Git-Tag: v13.0.2~142^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F20618%2Fhead;p=ceph.git cmake,deb: set EnvironmentFile using cmake this change also fix the EnvironmentFile specified in rbdmap.service. without this change EnvironmentFile in rbdmap.service is always /etc/sysconfig/ceph even on debian derived distros. after this change, this variable is /etc/default/ceph in rbdmap.service shipped by the deb packages. Signed-off-by: Kefu Chai --- diff --git a/debian/rules b/debian/rules index 50495ffb6da..5f8923b48fa 100755 --- a/debian/rules +++ b/debian/rules @@ -6,7 +6,8 @@ export DESTDIR=$(CURDIR)/debian/tmp export DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) extraopts += -DUSE_CRYPTOPP=OFF -DWITH_OCF=ON -DWITH_LTTNG=ON -DWITH_PYTHON3=ON -DWITH_EMBEDDED=OFF -extraopts += -DWITH_CEPHFS_JAVA=ON -DWITH_SYSTEMD=ON +extraopts += -DWITH_CEPHFS_JAVA=ON +extraopts += -DWITH_SYSTEMD=ON -DCEPH_SYSTEMD_ENV_DIR=/etc/default # assumes that ceph is exmpt from multiarch support, so we override the libdir. extraopts += -DCMAKE_INSTALL_LIBDIR=/usr/lib extraopts += -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib @@ -83,17 +84,6 @@ override_dh_installinit: install -d -m0755 debian/ceph-common/usr/lib/tmpfiles.d install -m 0644 -D systemd/ceph.tmpfiles.d debian/ceph-common/usr/lib/tmpfiles.d/ceph.conf - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mon/lib/systemd/system/ceph-mon@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-osd@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-disk@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-osd/lib/systemd/system/ceph-volume@.service - - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mds/lib/systemd/system/ceph-mds@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-fuse/lib/systemd/system/ceph-fuse@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/ceph-mgr/lib/systemd/system/ceph-mgr@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/radosgw/lib/systemd/system/ceph-radosgw@.service - sed -i s./etc/sysconfig/./etc/default/.g debian/rbd-mirror/lib/systemd/system/ceph-rbd-mirror@.service - dh_installinit -p ceph-base --name ceph --no-start dh_installinit -p radosgw --no-start diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt index cd88f328926..86ea87cde4e 100644 --- a/systemd/CMakeLists.txt +++ b/systemd/CMakeLists.txt @@ -1,5 +1,26 @@ set(CMAKE_INSTALL_SYSTEMD_SERVICEDIR "${CMAKE_INSTALL_LIBEXECDIR}/systemd/system" CACHE PATH "Location for systemd service files") +set(CEPH_SYSTEMD_ENV_DIR "/etc/sysconf" + CACHE PATH "Location for systemd service environmental variable settings files") +set(SYSTEMD_ENV_FILE "${CEPH_SYSTEMD_ENV_DIR}/ceph") +foreach(service + ceph-fuse@ + ceph-mds@ + ceph-mgr@ + ceph-mon@ + ceph-osd@ + ceph-radosgw@ + ceph-rbd-mirror@ + rbdmap) + configure_file( + ${service}.service.in + ${service}.service + @ONLY) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${service}.service + DESTINATION ${CMAKE_INSTALL_SYSTEMD_SERVICEDIR}) +endforeach() + install(FILES ceph.target ceph-fuse.target @@ -9,14 +30,6 @@ install(FILES ceph-mds.target ceph-radosgw.target ceph-rbd-mirror.target - ceph-fuse@.service - ceph-mds@.service - ceph-mgr@.service - ceph-mon@.service - ceph-osd@.service - ceph-radosgw@.service - ceph-rbd-mirror@.service ceph-disk@.service ceph-volume@.service - rbdmap.service DESTINATION ${CMAKE_INSTALL_SYSTEMD_SERVICEDIR}) diff --git a/systemd/ceph-fuse@.service b/systemd/ceph-fuse@.service deleted file mode 100644 index 98982441ebc..00000000000 --- a/systemd/ceph-fuse@.service +++ /dev/null @@ -1,18 +0,0 @@ -[Unit] -Description=Ceph FUSE client -After=network-online.target local-fs.target time-sync.target -Wants=network-online.target local-fs.target time-sync.target -Conflicts=umount.target -PartOf=ceph-fuse.target - -[Service] -EnvironmentFile=-/etc/sysconfig/ceph -Environment=CLUSTER=ceph -ExecStart=/usr/bin/ceph-fuse -f --cluster ${CLUSTER} %I -TasksMax=infinity -Restart=on-failure -StartLimitInterval=30min -StartLimitBurst=3 - -[Install] -WantedBy=ceph-fuse.target diff --git a/systemd/ceph-fuse@.service.in b/systemd/ceph-fuse@.service.in new file mode 100644 index 00000000000..11eb7e760d7 --- /dev/null +++ b/systemd/ceph-fuse@.service.in @@ -0,0 +1,18 @@ +[Unit] +Description=Ceph FUSE client +After=network-online.target local-fs.target time-sync.target +Wants=network-online.target local-fs.target time-sync.target +Conflicts=umount.target +PartOf=ceph-fuse.target + +[Service] +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-fuse -f --cluster ${CLUSTER} %I +TasksMax=infinity +Restart=on-failure +StartLimitInterval=30min +StartLimitBurst=3 + +[Install] +WantedBy=ceph-fuse.target diff --git a/systemd/ceph-mds@.service b/systemd/ceph-mds@.service deleted file mode 100644 index d34bd057b76..00000000000 --- a/systemd/ceph-mds@.service +++ /dev/null @@ -1,24 +0,0 @@ -[Unit] -Description=Ceph metadata server daemon -After=network-online.target local-fs.target time-sync.target -Wants=network-online.target local-fs.target time-sync.target -PartOf=ceph-mds.target - -[Service] -LimitNOFILE=1048576 -LimitNPROC=1048576 -EnvironmentFile=-/etc/sysconfig/ceph -Environment=CLUSTER=ceph -ExecStart=/usr/bin/ceph-mds -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph -ExecReload=/bin/kill -HUP $MAINPID -PrivateDevices=yes -ProtectHome=true -ProtectSystem=full -PrivateTmp=true -TasksMax=infinity -Restart=on-failure -StartLimitInterval=30min -StartLimitBurst=3 - -[Install] -WantedBy=ceph-mds.target diff --git a/systemd/ceph-mds@.service.in b/systemd/ceph-mds@.service.in new file mode 100644 index 00000000000..bd472f66b22 --- /dev/null +++ b/systemd/ceph-mds@.service.in @@ -0,0 +1,24 @@ +[Unit] +Description=Ceph metadata server daemon +After=network-online.target local-fs.target time-sync.target +Wants=network-online.target local-fs.target time-sync.target +PartOf=ceph-mds.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-mds -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +ExecReload=/bin/kill -HUP $MAINPID +PrivateDevices=yes +ProtectHome=true +ProtectSystem=full +PrivateTmp=true +TasksMax=infinity +Restart=on-failure +StartLimitInterval=30min +StartLimitBurst=3 + +[Install] +WantedBy=ceph-mds.target diff --git a/systemd/ceph-mgr@.service b/systemd/ceph-mgr@.service deleted file mode 100644 index 8272ad09c29..00000000000 --- a/systemd/ceph-mgr@.service +++ /dev/null @@ -1,21 +0,0 @@ -[Unit] -Description=Ceph cluster manager daemon -After=network-online.target local-fs.target time-sync.target -Wants=network-online.target local-fs.target time-sync.target -PartOf=ceph-mgr.target - -[Service] -LimitNOFILE=1048576 -LimitNPROC=1048576 -EnvironmentFile=-/etc/sysconfig/ceph -Environment=CLUSTER=ceph - -ExecStart=/usr/bin/ceph-mgr -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph -ExecReload=/bin/kill -HUP $MAINPID -Restart=on-failure -RestartSec=10 -StartLimitInterval=30min -StartLimitBurst=3 - -[Install] -WantedBy=ceph-mgr.target diff --git a/systemd/ceph-mgr@.service.in b/systemd/ceph-mgr@.service.in new file mode 100644 index 00000000000..fab1b9e8e5d --- /dev/null +++ b/systemd/ceph-mgr@.service.in @@ -0,0 +1,21 @@ +[Unit] +Description=Ceph cluster manager daemon +After=network-online.target local-fs.target time-sync.target +Wants=network-online.target local-fs.target time-sync.target +PartOf=ceph-mgr.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=CLUSTER=ceph + +ExecStart=/usr/bin/ceph-mgr -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure +RestartSec=10 +StartLimitInterval=30min +StartLimitBurst=3 + +[Install] +WantedBy=ceph-mgr.target diff --git a/systemd/ceph-mon@.service b/systemd/ceph-mon@.service deleted file mode 100644 index db4995fb9ca..00000000000 --- a/systemd/ceph-mon@.service +++ /dev/null @@ -1,31 +0,0 @@ -[Unit] -Description=Ceph cluster monitor daemon - -# According to: -# http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget -# these can be removed once ceph-mon will dynamically change network -# configuration. -After=network-online.target local-fs.target time-sync.target -Wants=network-online.target local-fs.target time-sync.target - -PartOf=ceph-mon.target - -[Service] -LimitNOFILE=1048576 -LimitNPROC=1048576 -EnvironmentFile=-/etc/sysconfig/ceph -Environment=CLUSTER=ceph -ExecStart=/usr/bin/ceph-mon -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph -ExecReload=/bin/kill -HUP $MAINPID -PrivateDevices=yes -ProtectHome=true -ProtectSystem=full -PrivateTmp=true -TasksMax=infinity -Restart=on-failure -StartLimitInterval=30min -StartLimitBurst=5 -RestartSec=10 - -[Install] -WantedBy=ceph-mon.target diff --git a/systemd/ceph-mon@.service.in b/systemd/ceph-mon@.service.in new file mode 100644 index 00000000000..c2566f37b95 --- /dev/null +++ b/systemd/ceph-mon@.service.in @@ -0,0 +1,31 @@ +[Unit] +Description=Ceph cluster monitor daemon + +# According to: +# http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget +# these can be removed once ceph-mon will dynamically change network +# configuration. +After=network-online.target local-fs.target time-sync.target +Wants=network-online.target local-fs.target time-sync.target + +PartOf=ceph-mon.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-mon -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +ExecReload=/bin/kill -HUP $MAINPID +PrivateDevices=yes +ProtectHome=true +ProtectSystem=full +PrivateTmp=true +TasksMax=infinity +Restart=on-failure +StartLimitInterval=30min +StartLimitBurst=5 +RestartSec=10 + +[Install] +WantedBy=ceph-mon.target diff --git a/systemd/ceph-osd@.service b/systemd/ceph-osd@.service deleted file mode 100644 index 0a43ee166ba..00000000000 --- a/systemd/ceph-osd@.service +++ /dev/null @@ -1,25 +0,0 @@ -[Unit] -Description=Ceph object storage daemon osd.%i -After=network-online.target local-fs.target time-sync.target ceph-mon.target -Wants=network-online.target local-fs.target time-sync.target -PartOf=ceph-osd.target - -[Service] -LimitNOFILE=1048576 -LimitNPROC=1048576 -EnvironmentFile=-/etc/sysconfig/ceph -Environment=CLUSTER=ceph -ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph -ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i -ExecReload=/bin/kill -HUP $MAINPID -ProtectHome=true -ProtectSystem=full -PrivateTmp=true -TasksMax=infinity -Restart=on-failure -StartLimitInterval=30min -StartLimitBurst=30 -RestartSec=20s - -[Install] -WantedBy=ceph-osd.target diff --git a/systemd/ceph-osd@.service.in b/systemd/ceph-osd@.service.in new file mode 100644 index 00000000000..672a10b1f14 --- /dev/null +++ b/systemd/ceph-osd@.service.in @@ -0,0 +1,25 @@ +[Unit] +Description=Ceph object storage daemon osd.%i +After=network-online.target local-fs.target time-sync.target ceph-mon.target +Wants=network-online.target local-fs.target time-sync.target +PartOf=ceph-osd.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=CLUSTER=ceph +ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i +ExecReload=/bin/kill -HUP $MAINPID +ProtectHome=true +ProtectSystem=full +PrivateTmp=true +TasksMax=infinity +Restart=on-failure +StartLimitInterval=30min +StartLimitBurst=30 +RestartSec=20s + +[Install] +WantedBy=ceph-osd.target diff --git a/systemd/ceph-radosgw@.service b/systemd/ceph-radosgw@.service deleted file mode 100644 index 3f7fcaca351..00000000000 --- a/systemd/ceph-radosgw@.service +++ /dev/null @@ -1,23 +0,0 @@ -[Unit] -Description=Ceph rados gateway -After=network-online.target local-fs.target time-sync.target -Wants=network-online.target local-fs.target time-sync.target -PartOf=ceph-radosgw.target - -[Service] -LimitNOFILE=1048576 -LimitNPROC=1048576 -EnvironmentFile=-/etc/sysconfig/ceph -Environment=CLUSTER=ceph -ExecStart=/usr/bin/radosgw -f --cluster ${CLUSTER} --name client.%i --setuser ceph --setgroup ceph -PrivateDevices=yes -ProtectHome=true -ProtectSystem=full -PrivateTmp=true -TasksMax=infinity -Restart=on-failure -StartLimitInterval=30s -StartLimitBurst=5 - -[Install] -WantedBy=ceph-radosgw.target diff --git a/systemd/ceph-radosgw@.service.in b/systemd/ceph-radosgw@.service.in new file mode 100644 index 00000000000..e2dac0bf3f0 --- /dev/null +++ b/systemd/ceph-radosgw@.service.in @@ -0,0 +1,23 @@ +[Unit] +Description=Ceph rados gateway +After=network-online.target local-fs.target time-sync.target +Wants=network-online.target local-fs.target time-sync.target +PartOf=ceph-radosgw.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=CLUSTER=ceph +ExecStart=/usr/bin/radosgw -f --cluster ${CLUSTER} --name client.%i --setuser ceph --setgroup ceph +PrivateDevices=yes +ProtectHome=true +ProtectSystem=full +PrivateTmp=true +TasksMax=infinity +Restart=on-failure +StartLimitInterval=30s +StartLimitBurst=5 + +[Install] +WantedBy=ceph-radosgw.target diff --git a/systemd/ceph-rbd-mirror@.service b/systemd/ceph-rbd-mirror@.service deleted file mode 100644 index 17fd7381f88..00000000000 --- a/systemd/ceph-rbd-mirror@.service +++ /dev/null @@ -1,24 +0,0 @@ -[Unit] -Description=Ceph rbd mirror daemon -After=network-online.target local-fs.target -Wants=network-online.target local-fs.target -PartOf=ceph-rbd-mirror.target - -[Service] -LimitNOFILE=1048576 -LimitNPROC=1048576 -EnvironmentFile=-/etc/sysconfig/ceph -Environment=CLUSTER=ceph -ExecStart=/usr/bin/rbd-mirror -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph -ExecReload=/bin/kill -HUP $MAINPID -PrivateDevices=yes -ProtectHome=true -ProtectSystem=full -PrivateTmp=true -Restart=on-failure -StartLimitInterval=30min -StartLimitBurst=3 -TasksMax=infinity - -[Install] -WantedBy=ceph-rbd-mirror.target diff --git a/systemd/ceph-rbd-mirror@.service.in b/systemd/ceph-rbd-mirror@.service.in new file mode 100644 index 00000000000..f8b15dcd401 --- /dev/null +++ b/systemd/ceph-rbd-mirror@.service.in @@ -0,0 +1,24 @@ +[Unit] +Description=Ceph rbd mirror daemon +After=network-online.target local-fs.target +Wants=network-online.target local-fs.target +PartOf=ceph-rbd-mirror.target + +[Service] +LimitNOFILE=1048576 +LimitNPROC=1048576 +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=CLUSTER=ceph +ExecStart=/usr/bin/rbd-mirror -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph +ExecReload=/bin/kill -HUP $MAINPID +PrivateDevices=yes +ProtectHome=true +ProtectSystem=full +PrivateTmp=true +Restart=on-failure +StartLimitInterval=30min +StartLimitBurst=3 +TasksMax=infinity + +[Install] +WantedBy=ceph-rbd-mirror.target diff --git a/systemd/rbdmap.service b/systemd/rbdmap.service deleted file mode 100644 index 15e64abb4b0..00000000000 --- a/systemd/rbdmap.service +++ /dev/null @@ -1,17 +0,0 @@ -[Unit] -Description=Map RBD devices - -After=network-online.target local-fs.target -Wants=network-online.target local-fs.target - -[Service] -EnvironmentFile=-/etc/sysconfig/ceph -Environment=RBDMAPFILE=/etc/ceph/rbdmap -Type=oneshot -RemainAfterExit=yes -ExecStart=/usr/bin/rbdmap map -ExecReload=/usr/bin/rbdmap map -ExecStop=/usr/bin/rbdmap unmap-all - -[Install] -WantedBy=multi-user.target diff --git a/systemd/rbdmap.service.in b/systemd/rbdmap.service.in new file mode 100644 index 00000000000..45aa2afea0f --- /dev/null +++ b/systemd/rbdmap.service.in @@ -0,0 +1,17 @@ +[Unit] +Description=Map RBD devices + +After=network-online.target local-fs.target +Wants=network-online.target local-fs.target + +[Service] +EnvironmentFile=-@SYSTEMD_ENV_FILE@ +Environment=RBDMAPFILE=/etc/ceph/rbdmap +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/rbdmap map +ExecReload=/usr/bin/rbdmap map +ExecStop=/usr/bin/rbdmap unmap-all + +[Install] +WantedBy=multi-user.target