#!/bin/sh # postinst script for rpki-rp # # see: dh_installdeb(1) set -e setup_user() { if ! getent group rpki >/dev/null then groupadd rpki fi if ! getent passwd rpki >/dev/null then useradd -g rpki -M -N -d /var/rcynic -s /sbin/nologin -c "RPKI system software" rpki fi } setup_directories() { install -o rpki -g rpki -d /var/rcynic/data /var/rcynic/rpki-rtr /var/rcynic/rpki-rtr/sockets /var/www/html/rcynic /var/log/rpki } setup_config() { rpki-confgen --read-xml /etc/rpki/rpki-confgen.xml \ --autoconf \ --set myrpki::handle=`hostname -f | sed 's/[.]/_/g'` \ --set myrpki::rpkid_server_host=`hostname -f` \ --set myrpki::pubd_server_host=`hostname -f` \ --set myrpki::shared_sql_engine=postgresql \ --set myrpki::rcynic_sql_database=rpki \ --set myrpki::rpkid_sql_database=rpki \ --set myrpki::irdbd_sql_database=rpki \ --set myrpki::pubd_sql_database=rpki \ --pwgen myrpki::shared_sql_password \ --pwgen web_portal::secret-key \ --set myrpki::run_rpkid=no \ --set myrpki::run_pubd=no \ --write-xml /etc/rpki/rpki.rp.xml \ --write-conf /etc/rpki/rpki.rp.conf.sample if test ! -f /etc/rpki.conf then cp -p /etc/rpki/rpki.rp.conf.sample /etc/rpki.conf fi } setup_sql() { rpki-sql-setup --debug --verbose --postgresql-root-username postgres create sudo -u rpki rpki-manage migrate rcynicdb --settings rpki.django_settings.rcynic } # We want to pick a *random* minute for rcynic to run, to spread load # on repositories, which is why we don't just use a package crontab. setup_cron() { if test "X`crontab -l -u rpki 2>/dev/null`" = "X" then awk -v t=`hexdump -n 2 -e '"%u\n"' /dev/urandom` ' BEGIN {printf "MAILTO=root\n%u * * * *\texec /usr/bin/rcynic-cron\n", t % 60}' | crontab -u rpki - fi } setup_xinetd() { if test -f /var/run/xinetd.pid then kill -HUP `cat /var/run/xinetd.pid` fi } # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package case "$1" in configure) setup_user setup_directories setup_config setup_sql setup_cron setup_xinetd ;; 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. #DEBHELPER# exit 0