#!/bin/sh # vim: set noet ts=8: # postinst script for ceph-common # # see: dh_installdeb(1) set -e # summary of how this script can be called: # # postinst configure # old-postinst abort-upgrade # conflictor's-postinst abort-remove in-favour # postinst abort-remove # deconfigured's-postinst abort-deconfigure in-favour [ ] # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # Let the admin override these distro-specified defaults. This is NOT # recommended! [ -f "/etc/default/ceph" ] && . /etc/default/ceph [ -z "$SERVER_HOME" ] && SERVER_HOME=/var/lib/ceph [ -z "$SERVER_USER" ] && SERVER_USER=ceph [ -z "$SERVER_NAME" ] && SERVER_NAME="Ceph storage service" [ -z "$SERVER_GROUP" ] && SERVER_GROUP=ceph [ -z "$SERVER_UID" ] && SERVER_UID=64045 # alloc by Debian base-passwd maintainer [ -z "$SERVER_GID" ] && SERVER_GID=$SERVER_UID # Groups that the user will be added to, if undefined, then none. [ -z "$SERVER_ADDGROUP" ] && SERVER_ADDGROUP= # Custom dpkg-maintscript-helper type function to deal with # nested /etc/default/ceph/ceph finish_mv_ceph_defaults() { rm -rf "/etc/default/ceph.dpkg-backup/ceph.dpkg-remove" [ -e "/etc/default/ceph.dpkg-backup/ceph" ] || return 0 echo "Preserving user changes to /etc/default/ceph (renamed from /etc/default/ceph/ceph)..." if [ -f "/etc/default/ceph" ]; then mv -f "/etc/default/ceph" "/etc/default/ceph.dpkg-new" fi mv -f "/etc/default/ceph.dpkg-backup/ceph" "/etc/default/ceph" } case "$1" in configure) # create user to avoid running server as root # 1. create group if not existing if ! getent group | grep -q "^$SERVER_GROUP:" ; then echo -n "Adding group $SERVER_GROUP.." addgroup --quiet --system --gid $SERVER_GID \ $SERVER_GROUP 2>/dev/null ||true echo "..done" fi # 2. create user if not existing if ! getent passwd | grep -q "^$SERVER_USER:"; then echo -n "Adding system user $SERVER_USER.." adduser --quiet \ --system \ --no-create-home \ --disabled-password \ --uid $SERVER_UID \ --gid $SERVER_GID \ --home $SERVER_HOME \ $SERVER_USER 2>/dev/null || true echo "..done" fi # 3. adjust passwd entry echo -n "Setting system user $SERVER_USER properties.." usermod -c "$SERVER_NAME" \ -d $SERVER_HOME \ -g $SERVER_GROUP \ $SERVER_USER # Unlock $SERVER_USER in case it is locked from an uninstall if [ -f /etc/shadow ]; then usermod -U -e '' $SERVER_USER else usermod -U $SERVER_USER fi echo "..done" # 5. adjust file and directory permissions if ! dpkg-statoverride --list $SERVER_HOME >/dev/null then chown $SERVER_USER:$SERVER_GROUP $SERVER_HOME chmod u=rwx,g=rx,o= $SERVER_HOME fi if ! dpkg-statoverride --list /var/log/ceph >/dev/null then chown -R $SERVER_USER:$SERVER_GROUP /var/log/ceph # members of group ceph can log here, but cannot remove # others' files. non-members cannot read any logs. chmod u=rwx,g=rwxs,o=t /var/log/ceph fi # 6. fix /var/run/ceph if [ -d /var/run/ceph ]; then echo -n "Fixing /var/run/ceph ownership.." chown $SERVER_USER:$SERVER_GROUP /var/run/ceph echo "..done" fi # create /run/ceph. fail softly if systemd isn't present or # something. [ -x /bin/systemd-tmpfiles ] && systemd-tmpfiles --create || true # Complete renames of /etc/default/ceph if [ -n "$2" ] && dpkg --compare-versions -- "$2" le-nl 10.2.1-0ubuntu1; then finish_mv_ceph_defaults # Preserve dpkg-backup directory if it still contains # any file if ! ls -1qA "/etc/default/ceph.dpkg-backup" | grep -q . ; then rm -rf "/etc/default/ceph.dpkg-backup" fi fi ;; abort-upgrade|abort-remove|abort-deconfigure) : ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. # Automatically added by dh_systemd_enable/13.3.4 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then # This will only remove masks created by d-s-h on package removal. deb-systemd-helper unmask 'ceph.target' >/dev/null || true # was-enabled defaults to true, so new installations run enable. if deb-systemd-helper --quiet was-enabled 'ceph.target'; then # Enables the unit on first installation, creates new # symlinks on upgrades if the unit file has changed. deb-systemd-helper enable 'ceph.target' >/dev/null || true else # Update the statefile to add new symlinks (if any), which need to be # cleaned up on purge. Also remove old symlinks. deb-systemd-helper update-state 'ceph.target' >/dev/null || true fi fi # End automatically added section # Automatically added by dh_systemd_enable/13.3.4 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then # This will only remove masks created by d-s-h on package removal. deb-systemd-helper unmask 'rbdmap.service' >/dev/null || true # was-enabled defaults to true, so new installations run enable. if deb-systemd-helper --quiet was-enabled 'rbdmap.service'; then # Enables the unit on first installation, creates new # symlinks on upgrades if the unit file has changed. deb-systemd-helper enable 'rbdmap.service' >/dev/null || true else # Update the statefile to add new symlinks (if any), which need to be # cleaned up on purge. Also remove old symlinks. deb-systemd-helper update-state 'rbdmap.service' >/dev/null || true fi fi # End automatically added section # Automatically added by dh_systemd_start/13.3.4 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then if [ -d /run/systemd/system ]; then systemctl --system daemon-reload >/dev/null || true deb-systemd-invoke start 'ceph.target' >/dev/null || true fi fi # End automatically added section # Automatically added by dh_installinit/13.3.4 if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then if [ -x "/etc/init.d/rbdmap" ]; then update-rc.d rbdmap defaults >/dev/null || exit 1 fi fi # End automatically added section exit 0