]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rpm, debian: move smartmontools and nvme-cli to ceph-base 44164/head
authorYaarit Hatuka <yaarit@redhat.com>
Wed, 25 Aug 2021 02:12:08 +0000 (02:12 +0000)
committerCory Snyder <csnyder@iland.com>
Fri, 3 Dec 2021 19:32:52 +0000 (14:32 -0500)
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>
(cherry picked from commit 7ca39fa92b47427af2f1c6000c653bb4dffc47fe)

Conflicts:
ceph.spec.in

Cherry-pick notes:
- Conflict in ceph.spec.in because setuptools not required for OSD in pacific

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 9b1a8f19ced253ade60967596d30400bb392b146..ebc2893cbd62743b8503ad4f16cada042a194754 100644 (file)
@@ -436,6 +436,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
@@ -504,14 +510,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
@@ -782,14 +780,6 @@ Requires:  lvm2
 Requires:      sudo
 Requires:      libstoragemgmt
 Requires:      python%{python3_pkgversion}-ceph-common = %{_epoch_prefix}%{version}-%{release}
-%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
@@ -1402,7 +1392,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}/*
@@ -1503,6 +1493,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
@@ -2084,7 +2075,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 8ee22ebe5bf9a5dfe754ea26dd13a84c55368fde..3c31951269f44ab52c503b6d678d6588f26f3b62 100644 (file)
@@ -20,3 +20,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 e5cf55074f62a98e06f30a2902651975bd513fb0..cb31919afa7cb5a715d5be4565b42d193df61fa7 100644 (file)
@@ -144,6 +144,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),
@@ -376,8 +378,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,
@@ -411,8 +411,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 c8c6f3e80f63dba74a5309aaedec6041f65d2590..1c215a76e5020057102dfd265293025211919ba7 100755 (executable)
@@ -56,7 +56,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/*