]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rpm, debian: move smartmontools and nvme-cli to ceph-base 42913/head
authorYaarit Hatuka <yaarit@redhat.com>
Wed, 25 Aug 2021 02:12:08 +0000 (02:12 +0000)
committerYaarit Hatuka <yaarit@redhat.com>
Wed, 25 Aug 2021 13:20:23 +0000 (13:20 +0000)
We wish to be able to scrape SMART and NVMe metrics from OSD and MON
nodes. For this we require / recommend smartmontools and nvme-cli
dependencies for both the ceph-osd and ceph-mon packages.  However, the
sudoers file (which is required for invoking `smartctl` by user 'ceph')
was installed only in the ceph-osd package.  Since different packages
cannot own the same file, and because we want to be able to scrape from
every daemon, we move the dependencies and the sudoers installation to
ceph-base. For generalization, we rename:
sudoers.d/ceph-osd-smartctl -> sudoers.d/ceph-smartctl

Fixes: https://tracker.ceph.com/issues/50657
Signed-off-by: Yaarit Hatuka <yaarit@redhat.com>
ceph.spec.in
debian/ceph-base.install
debian/ceph-osd.install
debian/control
debian/rules
sudoers.d/ceph-osd-smartctl [deleted file]
sudoers.d/ceph-smartctl [new file with mode: 0644]

index 159d99d982b57055fb2c81261f988447ac71921b..771cb44560a230f54fe603a6c0f1e96942680d43 100644 (file)
@@ -458,6 +458,12 @@ Requires:      gperftools-libs >= 2.6.1
 %endif
 %if 0%{?weak_deps}
 Recommends:    chrony
+Recommends:    nvme-cli
+%if 0%{?suse_version}
+Requires:      smartmontools
+%else
+Recommends:    smartmontools
+%endif
 %endif
 %description base
 Base is the package that includes all the files shared amongst ceph servers
@@ -526,14 +532,6 @@ Group:             System/Filesystems
 %endif
 Provides:      ceph-test:/usr/bin/ceph-monstore-tool
 Requires:      ceph-base = %{_epoch_prefix}%{version}-%{release}
-%if 0%{?weak_deps}
-Recommends:    nvme-cli
-%if 0%{?suse_version}
-Requires:       smartmontools
-%else
-Recommends:    smartmontools
-%endif
-%endif
 %if 0%{with jaeger}
 Requires:      libjaeger = %{_epoch_prefix}%{version}-%{release}
 %endif
@@ -806,15 +804,6 @@ Requires:  sudo
 Requires:      libstoragemgmt
 Requires:      python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release}
 Requires:      python%{python3_pkgversion}-setuptools
-
-%if 0%{?weak_deps}
-Recommends:    nvme-cli
-%if 0%{?suse_version}
-Requires:       smartmontools
-%else
-Recommends:    smartmontools
-%endif
-%endif
 %description osd
 ceph-osd is the object storage daemon for the Ceph distributed file
 system.  It is responsible for storing objects on a local file system
@@ -1421,7 +1410,7 @@ ln -sf %{_sbindir}/mount.ceph %{buildroot}/sbin/mount.ceph
 install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules
 
 # sudoers.d
-install -m 0440 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl
+install -m 0440 -D sudoers.d/ceph-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-smartctl
 
 %if 0%{?rhel} >= 8
 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/*
@@ -1518,6 +1507,7 @@ rm -rf %{buildroot}
 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-mgr
 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd
 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/bootstrap-rbd-mirror
+%{_sysconfdir}/sudoers.d/ceph-smartctl
 
 %post base
 /sbin/ldconfig
@@ -2104,7 +2094,6 @@ fi
 %{_unitdir}/ceph-volume@.service
 %attr(750,ceph,ceph) %dir %{_localstatedir}/lib/ceph/osd
 %config(noreplace) %{_sysctldir}/90-ceph-osd.conf
-%{_sysconfdir}/sudoers.d/ceph-osd-smartctl
 
 %post osd
 %if 0%{?suse_version}
index 6f7a9acdba3e1617838a0e71188343c16d1efe79..80aadd909e81c9c2c28bde8ca6d8133ec4244804 100644 (file)
@@ -19,3 +19,4 @@ usr/share/man/man8/crushtool.8
 usr/share/man/man8/monmaptool.8
 usr/share/man/man8/osdmaptool.8
 usr/share/man/man8/ceph-kvstore-tool.8
+etc/sudoers.d/ceph-smartctl
index 3a72447a82c24c9f85b1a706965a2ec0c7a4ee92..0db4460da8ab7d7beaf52e40c32fdc850181133c 100755 (executable)
@@ -23,4 +23,3 @@ usr/share/man/man8/ceph-volume-systemd.8
 usr/share/man/man8/ceph-osd.8
 usr/share/man/man8/ceph-bluestore-tool.8
 etc/sysctl.d/30-ceph-osd.conf
-etc/sudoers.d/ceph-osd-smartctl
index c68c3f22cbda2e215228047ac71e4d50b7e3f04c..a68356c9196beeb92ebdee73813c5d1d7f84b771 100644 (file)
@@ -147,6 +147,8 @@ Recommends: btrfs-tools,
             libradosstriper1 (= ${binary:Version}),
             librbd1 (= ${binary:Version}),
             ntp | time-daemon,
+            nvme-cli,
+            smartmontools,
 Replaces: ceph (<< 10),
           ceph-common (<< 0.78-500),
           ceph-test (<< 12.2.2-14),
@@ -379,8 +381,6 @@ Depends: ceph-base (= ${binary:Version}),
          ${shlibs:Depends},
 Replaces: ceph (<< 10), ceph-test (<< 12.2.2-14)
 Breaks: ceph (<< 10), ceph-test (<< 12.2.2-14)
-Recommends: nvme-cli,
-            smartmontools,
 Description: monitor server for the ceph storage system
  Ceph is a massively scalable, open-source, distributed
  storage system that runs on commodity hardware and delivers object,
@@ -414,8 +414,6 @@ Depends: ceph-base (= ${binary:Version}),
          ${shlibs:Depends},
 Replaces: ceph (<< 10), ceph-test (<< 12.2.2-14)
 Breaks: ceph (<< 10), ceph-test (<< 12.2.2-14)
-Recommends: nvme-cli,
-            smartmontools,
 Description: OSD server for the ceph storage system
  Ceph is a massively scalable, open-source, distributed
  storage system that runs on commodity hardware and delivers object,
index b186bc1c9ba25568004fe66f325e2a99567d61c9..0e7883e3981274b02176dc3ca78b60bec65faeff 100755 (executable)
@@ -69,7 +69,7 @@ override_dh_auto_install:
        install -D -m 644 udev/50-rbd.rules $(DESTDIR)/lib/udev/rules.d/50-rbd.rules
        install -D -m 644 src/etc-rbdmap $(DESTDIR)/etc/ceph/rbdmap
        install -D -m 644 etc/sysctl/90-ceph-osd.conf $(DESTDIR)/etc/sysctl.d/30-ceph-osd.conf
-       install -D -m 440 sudoers.d/ceph-osd-smartctl $(DESTDIR)/etc/sudoers.d/ceph-osd-smartctl
+       install -D -m 440 sudoers.d/ceph-smartctl $(DESTDIR)/etc/sudoers.d/ceph-smartctl
        install -D -m 755 src/tools/rbd_nbd/rbd-nbd_quiesce $(DESTDIR)/usr/libexec/rbd-nbd/rbd-nbd_quiesce
 
        install -m 755 src/cephadm/cephadm $(DESTDIR)/usr/sbin/cephadm
diff --git a/sudoers.d/ceph-osd-smartctl b/sudoers.d/ceph-osd-smartctl
deleted file mode 100644 (file)
index f53f6af..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-## allow ceph-osd (which runs as user ceph) to collect device health metrics
-
-ceph ALL=NOPASSWD: /usr/sbin/smartctl -x --json=o /dev/*
-ceph ALL=NOPASSWD: /usr/sbin/nvme * smart-log-add --json /dev/*
diff --git a/sudoers.d/ceph-smartctl b/sudoers.d/ceph-smartctl
new file mode 100644 (file)
index 0000000..2649cea
--- /dev/null
@@ -0,0 +1,4 @@
+## allow ceph daemons (which run as user ceph) to collect device health metrics
+
+ceph ALL=NOPASSWD: /usr/sbin/smartctl -x --json=o /dev/*
+ceph ALL=NOPASSWD: /usr/sbin/nvme * smart-log-add --json /dev/*