[rule hosted] +apticron_init
[lhc/ateliers.git] / vm_hosted
index 925f1a9..0514a43 100755 (executable)
--- a/vm_hosted
+++ b/vm_hosted
@@ -3,7 +3,6 @@ set -e -f ${DRY_RUN:+-n} -u
 tool=${0%/*}
 . "$tool"/lib/functions.sh
 . "$tool"/etc/vm.sh
-test "$(hostname --fqdn)" = "$vm_fqdn"
 
 rule_help () {
        cat >&2 <<-EOF
@@ -40,7 +39,7 @@ rule__etckeeper_init () {
                GIT_COMMIT_OPTIONS=""
                AVOID_DAILY_AUTOCOMMITS=1
                #AVOID_SPECIAL_FILE_WARNING=1
-               #AVOID_COMMIT_BEFORE_INSTALL=1
+               AVOID_COMMIT_BEFORE_INSTALL=1
                HIGHLEVEL_PACKAGE_MANAGER=apt
                LOWLEVEL_PACKAGE_MANAGER=dpkg
                EOF
@@ -70,7 +69,7 @@ rule__network_init () {
                    network   $vm_ipv4
                    broadcast $vm_ipv4
                    netmask   255.255.255.255
-                   mtu 1300 # TODO: voir si c'est nécessaire à Lyon
+                   #mtu 1300
                    post-up   ip address add    $vm_ipv4/32 dev \$IFACE
                    pre-down  ip address delete $vm_ipv4/32 dev \$IFACE
                EOF
@@ -80,7 +79,7 @@ rule__apt_init () {
                deb http://ftp.fr.debian.org/debian $vm_lsb_name main contrib non-free
                EOF
        mk_reg mod= own= /etc/apt/sources.list.d/$vm_lsb_name-backports.list <<-EOF
-               deb http://backports.debian.org/debian-backports $vm_lsb_name-backports main contrib non-free
+               #deb http://backports.debian.org/debian-backports $vm_lsb_name-backports main contrib non-free
                EOF
        mk_reg mod= own= /etc/apt/preferences <<-EOF
                Package: *
@@ -183,17 +182,17 @@ rule__login_init () {
                HUSHLOGIN_FILE   .hushlogin
                ENV_SUPATH       PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
                ENV_PATH         PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-               # NOTE: met les sbin/ dans ENV_PATH ;
-               #  - ça n'apporte aucune protection de ne pas les mettre ;
-               #  - ça frustre de ne pas les trouver.
+                # NOTE: met les sbin/ dans ENV_PATH ;
+                #  - ça n'apporte aucune protection de ne pas les mettre ;
+                #  - ça frustre de ne pas les trouver.
                TTYGROUP         tty
                TTYPERM          0600
                ERASECHAR        0177
                KILLCHAR         025
-               # NOTE: rwxrwx--- ;
-               #  - donne une même confiance au groupe propriétaire qu'au propriétaire ;
-               #  - facilite l'utilisation des ACL, qui sont dépendantes des droits du groupe propriétaire.
                UMASK            007
+                # NOTE: rwxrwx--- ;
+                #  - donne une même confiance au groupe propriétaire qu'au propriétaire ;
+                #  - facilite l'utilisation des ACL, qui sont dépendantes des droits du groupe propriétaire.
                PASS_MAX_DAYS    99999
                PASS_MIN_DAYS    0
                PASS_WARN_AGE    7
@@ -262,9 +261,6 @@ rule__initramfs_init () {
         /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key.pub \
         /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key \
         /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key.pub
-       #mk_reg mod=640 own=root:root </dev/null \
-       # /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key \
-       # /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key.pub
        ssh-keygen -F "init.$vm_fqdn" -f "$tool"/etc/openssh/known_hosts |
        ( while IFS= read -r line
         do case $line in (*" RSA") return 0; break;; esac
@@ -317,6 +313,25 @@ rule__boot_init () {
        sudo update-grub2 # NOTE: prend en compte /boot/grub/device.map
        rule__initramfs_init
  }
+rule_apticron_init () {
+       sudo apt-get install --reinstall apticron
+       mk_reg mod=644 own=root:root /etc/default/grub <<-EOF
+               EMAIL="admin@heureux-cyclage.org"
+               # DIFF_ONLY="1"
+               # LISTCHANGES_PROFILE="apticron"
+               # ALL_FQDNS="1"
+               # SYSTEM="foobar.example.com"
+               # IPADDRESSNUM="1"
+               # IPADDRESSES="192.0.2.1 2001:db8:1:2:3::1"
+               # NOTIFY_HOLDS="0"
+               # NOTIFY_NEW="0"
+               # NOTIFY_NO_UPDATES="0"
+               # CUSTOM_SUBJECT=""
+               # CUSTOM_NO_UPDATES_SUBJECT=""
+               # CUSTOM_FROM="root@ateliers.heureux-cyclage.org"
+               EOF
+       sudo service apticron restart
+ }
 rule__bin_init () {
        mk_lnk "$tool"/vm_hosted /usr/local/sbin/
  }
@@ -428,10 +443,12 @@ rule_user_admin_add () { # SYNTAX: $user
                # NOTE: le mot-de-passe doit être initialisé par l'utilisateur à l'aide de passwd-init .
        eval local home\; home="~$user"
        sudo adduser "$user" sudo
-       ssh_key_add user=$user "$tool"/var/pub/ssh/"$user".key "$home"/etc/ssh/authorized_keys
+       mk_reg mod=640 own=$user:$user "$home"/etc/ssh/authorized_keys \
+        <"$tool"/var/pub/ssh/"$user".key
        rule__initramfs_init
        rule__user_root_init
-       sudo gpg --import "$tool"/var/pub/opengpg/"$user".key
+       sudo -u "$user" find "$tool"/var/pub/openpgp \
+        -type f -name '*.key' -exec gpg --import {} \;
  }
 rule_user_mail_format () {
        mk_dir mod=770 own=root:adm /etc/skel/etc/procmail
@@ -800,5 +817,11 @@ rule_mail_install () {
 
 rule=${1:-help}
 ${1+shift}
-set "${TRACE:+-x}"
+case $rule in
+ (help);;
+ (*)
+       test "$(hostname --fqdn)" = "$vm_fqdn"
+       set "${TRACE:+-x}"
+       ;;
+ esac
 rule_$rule "$@"