mirror of
https://github.com/NLnetLabs/krill.git
synced 2026-09-12 12:37:40 +02:00
This PR removes the static-openssl feature. If necessary, this features can be invoked by selecting openssl/vendored directly. The PR also removes building and testing with default features from the CI workflow. The only difference between default and all features currently is rta which is deprecated and will be removed, anyway. This PR now also fixes a few issues in krillc config simple and the post install scripts for Debian and RPM packages.
91 lines
3.0 KiB
TOML
Executable File
91 lines
3.0 KiB
TOML
Executable File
post_install_script = '''
|
|
#!/bin/bash -e
|
|
# Script based on the RPM %systemd_post scriptlet. See:
|
|
# - https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd
|
|
# - https://cgit.freedesktop.org/systemd/systemd/tree/src/core/macros.systemd.in
|
|
|
|
KRILL_USER=krill
|
|
KRILL_GROUP=${KRILL_USER}
|
|
KRILL_HOME_DIR="/var/lib/krill"
|
|
KRILL_HOME_DIR_PERMS=700
|
|
KRILL_CONF="/etc/krill.conf"
|
|
KRILL_CONF_PERMS=640
|
|
KRILL_DATA="${KRILL_HOME_DIR}/data/"
|
|
|
|
if [ $EUID -ne 0 ]; then
|
|
echo >&2 "ERROR: RTRTR postinst script must be run as root"
|
|
exit 1
|
|
fi
|
|
|
|
create_user() {
|
|
# https://github.com/NLnetLabs/krill/issues/908
|
|
if ! id ${KRILL_USER} > /dev/null 2>&1; then
|
|
# According to the CentOS 7 useradd man page:
|
|
# --user-group causes a group by the same name as the user to be created
|
|
# --create-home should force creation of a home dir even for a system account.
|
|
useradd --home-dir ${KRILL_HOME_DIR} --system --create-home --user-group ${KRILL_USER}
|
|
fi
|
|
|
|
# Ensure that the home directory has the correct ownership
|
|
chown -R ${KRILL_USER}:${KRILL_GROUP} ${KRILL_HOME_DIR}
|
|
|
|
# Ensure that the home directory has the correct permissions
|
|
chmod ${KRILL_HOME_DIR_PERMS} ${KRILL_HOME_DIR}
|
|
}
|
|
|
|
init_systemd_service() {
|
|
systemctl preset krill.service 2>&1 || :
|
|
}
|
|
|
|
generate_password() {
|
|
# Tries not to depend on too many other commmands
|
|
# being installed.
|
|
date | md5sum | awk '{print $1}'
|
|
}
|
|
|
|
create_first_time_configuration() {
|
|
if [ ! -f "${KRILL_CONF}" ]; then
|
|
# generate a token for authenticating with Krill
|
|
ADMIN_TOKEN="$(generate_password)"
|
|
|
|
# generate a config file using our preferred filesystem locations
|
|
# and generated admin token
|
|
# note: we don't configure Krill to store its PID file under /var/run/
|
|
# because that requires root privileges potentially at least once per
|
|
# boot, and Krill doesn't drop privileges yet so when run as a non-root
|
|
# user has no right to create the file or missing /var/run/subdir.
|
|
# See: https://stackoverflow.com/a/28312577
|
|
krillc \
|
|
--token "${ADMIN_TOKEN}" \
|
|
config simple --data "${KRILL_DATA}" |
|
|
sed -e "s|^\(### log_type.\+\)|\1\nlog_type = \"syslog\"|" \
|
|
> "${KRILL_CONF}"
|
|
|
|
# Ensure that the config file has the correct ownership
|
|
chown ${KRILL_USER}:${KRILL_GROUP} ${KRILL_CONF}
|
|
|
|
# Ensure that the config file has the correct permissions
|
|
chmod ${KRILL_CONF_PERMS} ${KRILL_CONF}
|
|
fi
|
|
}
|
|
|
|
if [ $1 -eq 1 ] ; then
|
|
# Initial installation
|
|
create_user
|
|
init_systemd_service
|
|
create_first_time_configuration
|
|
fi
|
|
'''
|
|
|
|
post_uninstall_script = '''
|
|
#!/bin/bash -e
|
|
# Script based on the RPM %systemd_postun scriptlet. See:
|
|
# - https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd
|
|
# - https://cgit.freedesktop.org/systemd/systemd/tree/src/core/macros.systemd.in
|
|
|
|
systemctl daemon-reload >/dev/null 2>&1 || :
|
|
if [ $1 -ge 1 ] ; then
|
|
systemctl try-restart krill.service >/dev/null 2>&1 || :
|
|
fi
|
|
'''
|