From 3c89678ff7a90873bd4a48207bce7d373f17bdf2 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 13 Jan 2018 00:56:11 -0500 Subject: hosts: Copy postinst code to new files --- diff --git a/hosts/alsvid2/postinst b/hosts/alsvid2/postinst new file mode 100644 index 0000000..9d6a465 --- /dev/null +++ b/hosts/alsvid2/postinst @@ -0,0 +1,155 @@ +#!/bin/sh + +# Make swap file and set vm.swappiness. +# mkswap needs to be given the full path to the swap file including the +# root file system's mount point, or else this false error happens: +# mkswap: error: /var/swap is mounted; will not make swapspace +fallocate -l 12GiB "${target}/var/swap" || return 1 +chmod 0600 "${target}/var/swap" || return 1 +mkswap "${target}/var/swap" || return 1 +printf 'vm.swappiness = 10\n' >"${target}/etc/sysctl.d/vm-swappiness.conf" + +# Hibernation. +mkdir -p "${target}/boot/grub/" || return 1 +root="UUID=$(blkid -o value -s UUID "${dev}1")" +offset="$(in_target filefrag -v /var/swap | sed -n ' + /physical_offset:/{ + n; + s/^[ 0-9.]*:[ 0-9.]*: *\([0-9][0-9]*\)...*$/\1/; + p; + q; + };')" +cmdline="root=${root} ro quiet resume=${root} resume_offset=${offset}" +cat >"${target}/boot/grub/libreboot_grub.cfg" <<-EOF + set root=(ahci0,msdos1) + linux /vmlinuz ${cmdline} + initrd /initrd.img + boot + EOF + +# Disable mpd service. +in_target update-rc.d mpd disable + +# Add "deb-src" line and backports. +cat >"${target}/etc/apt/sources.list" <<-EOF + deb http://httpredir.debian.org/debian jessie main + deb-src http://httpredir.debian.org/debian jessie main + EOF +cat >"${target}/etc/apt/sources.list.d/jessie-backports.list" <<-EOF + deb http://httpredir.debian.org/debian jessie-backports main + deb-src http://httpredir.debian.org/debian jessie-backports main + EOF +in_target apt-get update || return 1 +in_target apt-get -q -y install midori || return 1 +in_target apt-get -q -y install youtube-dl/jessie-backports || return 1 +in_target apt-get -q -y install kicad/jessie-backports || return 1 +in_target apt-get -q -y install tor/jessie-backports torsocks/jessie-backports \ + || return 1 + +# Set default x-www-browser. +in_target update-alternatives --set x-www-browser /usr/bin/midori + +# Purge systemd. +in_target apt-get -q -y purge libpam-systemd systemd || return 1 +in_target apt-get -q -y --purge autoremove || return 1 + +# Remove packages from APT cache. +in_target apt-get clean || return 1 + +# Add user to groups created by postinst_pkgs. +in_target adduser pj scanner || return 1 +in_target adduser pj wireshark || return 1 +in_target adduser pj sbuild || return 1 + +# Add udev rule for USBtinyISP(-compatible) programmers. +cat >"${target}/etc/udev/rules.d/10-usbtinyisp.rules" <<-EOF + SUBSYSTEM=="usb", ATTR{idVendor}=="1781", ATTR{idProduct}=="0c9f", MODE="0660", GROUP="adm" + EOF + +# Install Vertex themes. +in_target apt-get -q -y install gnome-themes-standard gtk2-engines-murrine \ + libgtk-3-dev +in_target sudo -u pj sh <<-EOF + set -e + git clone https://github.com/horst3180/vertex-theme \ + /home/pj/src/vertex-theme/ + cd /home/pj/src/vertex-theme/ + ./autogen.sh --prefix=/home/pj/.local + make install + ln -s .local/share/themes/ /home/pj/.themes + EOF +[ ${?} -ne 0 ] && return 1 + +# Download wallpaper. +in_target sudo -u pj wget -O /home/pj/.wallpaper \ + http://product-files.libiquity.com/taurinus/boot-splash/x200/background.png + +# Use temporary configuation SSH key. +install -d -o 1000 -g 1000 -m 0700 "${target}/home/pj/.ssh" || return 1 +cat >"${target}/home/pj/.ssh/id_rsa" <<-EOF + -----BEGIN RSA PRIVATE KEY----- + MIICXAIBAAKBgQCzAF0zqeS2X0TuVOIxqMec3lMzZy/MHQswPP+BQkmc2D3YVb2x + px1YAAweQnfZ27pGJkDztStOtMQJeaOsnAVdm2NSe+hEdaKAOxf9p6t+F930HM/w + 1wkm1ddlsnCaaCipzGVOM77Q/brEItWvuq8G0+/fgN1o4pZzl4Bub/4D4QIDAQAB + AoGAS+wKnAAiXuv3m7LrIa75w2JVHcdVcZicB0DICnYoLNtXF+v+AlzkSE/009zT + YtccoeZVxEiCbuajA3XRY0PlzgGHTbsGn1BWqI9cjdXTiotnjzOH8zr3JiMZMWwf + hqwbtleP+yruNPHMxQ8dKVXv875NKJW+aArmQWtjeMOy/vECQQDdsvPJ4bUu8M7/ + MXqGtz8CJbrRp+ZMKUw0WuwSwTfHRs/Jp27mWf5+t/u+RN8WK/RRD8FHvz4azLhr + sNUFiE69AkEAzrI/DFBFOM5mUECujs2UvCCeWZiAi9QoJ7kDrrAkcG+hMalpNUU3 + SUZ76stBUk3hZNpc82aq0a0o8ac0VrBd9QJAB3nbYrlrxLN2J4Dhot1XEJl5HUzO + JU9XNITEZTWCzgODSkeNI9NxE5DcumPUKgk9aeZgHC1EyN6ScX87D76y+QJAL8DE + ii69X1toDeBzs7BRTYlnrCFsiWGRiWPYMvKk6IkRv6x5DwKXvEkZdexRghdWHHvK + f71Xd6u+yt2rXN/QRQJBALv6SwbokdXp5qKJV48QG452dSOT7FQEINnCsIeNUKP6 + 9YyaZxqLia6pEbEKTSRdztXaMqRsrmOG8E084sFg8DQ= + -----END RSA PRIVATE KEY----- + EOF +in_target chown pj:pj '/home/pj/.ssh/id_rsa' +in_target chmod 0600 '/home/pj/.ssh/id_rsa' + +# Set up SSH known hosts. +cat >"${target}/home/pj/.ssh/known_hosts" <<-EOF + |1|fypb7kn7NH0fqHGj9Xs/rdpO71s=|SCtg2BdMNB9zL5bAPYkJy1uiNSM= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + |1|z7it+otnWcn/98YKdeaBCXl+ug8=|NFRpdQZBMTAuWbUDAqXLptFR5Ao= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + EOF +in_target chown pj:pj '/home/pj/.ssh/known_hosts' +in_target chmod 0600 '/home/pj/.ssh/known_hosts' + +# Bootstrap vcsh and mr. +rm -f "${target}/home/pj/.profile" "${target}/home/pj/.bashrc" \ + "${target}/home/pj/.bash_logout" +in_target sudo -u pj vcsh clone ssh://git@git.pehjota.net/dotfiles/mr.git mr \ + || return 1 +in_target sudo -u pj mr update || return 1 +in_target sudo -u pj /home/pj/bin/dfen claws-mail clipit fluxbox gpicview gimp \ + gtk kicad midori mpd mpv redshift roxterm xdg-user-dirs xscreensaver + +# Create XDG directories. +sed 's/#.*$//; /^$/d;' "${target}/home/pj/.config/user-dirs.dirs" | \ + while IFS='=' read var val; do + HOME='/home/pj' + eval "mkdir '${target}/'${val}" + done + +# Add empty folder list to prevent Claws Mail wizard from running. +cat >"${target}/home/pj/.claws-mail/folderlist.xml" <<-EOF + + + + + + + + EOF + +# Generate target's SSH keypair. +rm -f "${target}/home/pj/.ssh/id_rsa" "${target}/home/pj/.ssh/id_rsa.pub" || \ + return 1 +install -o 1000 -g 1000 -m 0600 '/home/pj/.ssh/id_rsa' \ + "${target}/home/pj/.ssh/id_rsa" || return 1 +install -o 1000 -g 1000 -m 0600 '/home/pj/.ssh/id_rsa.pub' \ + "${target}/home/pj/.ssh/id_rsa.pub" || return 1 +#in_target ssh-keygen -b 4096 -C pj@alsvid200 -t rsa -f /home/pj/.ssh/id_rsa \ +# "${target}/etc/sysctl.d/vm-swappiness.conf" + +# Add "deb-src" line and sid. +cat >"${target}/etc/apt/sources.list" <<-EOF + deb http://httpredir.debian.org/debian stretch main + deb-src http://httpredir.debian.org/debian stretch main + deb http://httpredir.debian.org/debian sid main + deb-src http://httpredir.debian.org/debian sid main + EOF +cat >"${target}/etc/apt/apt.conf" <<-EOF + APT::Default-Release "stretch"; + EOF +in_target apt-get update || return 1 + +# Install wicd (removed from stretch/testing due to bug #816076, and +# also orphaned by bug #801253). +in_target apt-get -q -y install wicd-daemon/sid wicd-gtk/sid wicd-curses/sid \ + wicd-cli/sid + +# Purge systemd. +in_target apt-get -q -y purge libpam-systemd systemd || return 1 +in_target apt-get -q -y --purge autoremove || return 1 + +# Remove packages from APT cache. +in_target apt-get clean || return 1 + +# Install Vertex themes. +in_target apt-get -q -y install gnome-themes-standard gtk2-engines-murrine \ + libgtk-3-dev +in_target sudo -u cam sh <<-EOF + set -e + git clone https://github.com/horst3180/vertex-theme \ + /home/cam/src/vertex-theme/ + cd /home/cam/src/vertex-theme/ + ./autogen.sh --prefix=/home/cam/.local + make install + ln -s .local/share/themes/ /home/cam/.themes + EOF +[ ${?} -ne 0 ] && return 1 + +# Download wallpaper. +in_target sudo -u cam wget -O /home/cam/.wallpaper \ + http://product-files.libiquity.com/taurinus/boot-splash/x200/background.png + +# Use temporary configuation SSH key. +install -d -o 1000 -g 1000 -m 0700 "${target}/home/cam/.ssh" || return 1 +cat >"${target}/home/cam/.ssh/id_rsa" <<-EOF + -----BEGIN RSA PRIVATE KEY----- + MIICXAIBAAKBgQCzAF0zqeS2X0TuVOIxqMec3lMzZy/MHQswPP+BQkmc2D3YVb2x + px1YAAweQnfZ27pGJkDztStOtMQJeaOsnAVdm2NSe+hEdaKAOxf9p6t+F930HM/w + 1wkm1ddlsnCaaCipzGVOM77Q/brEItWvuq8G0+/fgN1o4pZzl4Bub/4D4QIDAQAB + AoGAS+wKnAAiXuv3m7LrIa75w2JVHcdVcZicB0DICnYoLNtXF+v+AlzkSE/009zT + YtccoeZVxEiCbuajA3XRY0PlzgGHTbsGn1BWqI9cjdXTiotnjzOH8zr3JiMZMWwf + hqwbtleP+yruNPHMxQ8dKVXv875NKJW+aArmQWtjeMOy/vECQQDdsvPJ4bUu8M7/ + MXqGtz8CJbrRp+ZMKUw0WuwSwTfHRs/Jp27mWf5+t/u+RN8WK/RRD8FHvz4azLhr + sNUFiE69AkEAzrI/DFBFOM5mUECujs2UvCCeWZiAi9QoJ7kDrrAkcG+hMalpNUU3 + SUZ76stBUk3hZNpc82aq0a0o8ac0VrBd9QJAB3nbYrlrxLN2J4Dhot1XEJl5HUzO + JU9XNITEZTWCzgODSkeNI9NxE5DcumPUKgk9aeZgHC1EyN6ScX87D76y+QJAL8DE + ii69X1toDeBzs7BRTYlnrCFsiWGRiWPYMvKk6IkRv6x5DwKXvEkZdexRghdWHHvK + f71Xd6u+yt2rXN/QRQJBALv6SwbokdXp5qKJV48QG452dSOT7FQEINnCsIeNUKP6 + 9YyaZxqLia6pEbEKTSRdztXaMqRsrmOG8E084sFg8DQ= + -----END RSA PRIVATE KEY----- + EOF +in_target chown cam:cam '/home/cam/.ssh/id_rsa' +in_target chmod 0600 '/home/cam/.ssh/id_rsa' + +# Set up SSH known hosts. +cat >"${target}/home/cam/.ssh/known_hosts" <<-EOF + |1|fypb7kn7NH0fqHGj9Xs/rdpO71s=|SCtg2BdMNB9zL5bAPYkJy1uiNSM= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + |1|z7it+otnWcn/98YKdeaBCXl+ug8=|NFRpdQZBMTAuWbUDAqXLptFR5Ao= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + EOF +in_target chown cam:cam '/home/cam/.ssh/known_hosts' +in_target chmod 0600 '/home/cam/.ssh/known_hosts' + +# Bootstrap vcsh and mr. +rm -f "${target}/home/cam/.profile" "${target}/home/cam/.bashrc" \ + "${target}/home/cam/.bash_logout" +in_target sudo -u cam vcsh clone ssh://git@git.pehjota.net/dotfiles/mr.git mr \ + || return 1 +in_target sudo -u cam mr update || return 1 +in_target sudo -u cam /home/cam/bin/dfen clipit fluxbox gpicview gimp gtk \ + redshift roxterm xdg-user-dirs xscreensaver + +# Create XDG directories. +sed 's/#.*$//; /^$/d;' "${target}/home/cam/.config/user-dirs.dirs" | \ + while IFS='=' read var val; do + HOME='/home/cam' + eval "mkdir '${target}/'${val}" + done + +# Generate target's SSH keypair. +#rm -f "${target}/home/cam/.ssh/id_rsa" "${target}/home/cam/.ssh/id_rsa.pub" \ +# || return 1 +#install -o 1000 -g 1000 -m 0600 '/home/pj/.ssh/id_rsa' \ +# "${target}/home/cam/.ssh/id_rsa" || return 1 +#install -o 1000 -g 1000 -m 0600 '/home/pj/.ssh/id_rsa.pub' \ +# "${target}/home/cam/.ssh/id_rsa.pub" || return 1 +#in_target ssh-keygen -b 4096 -C cam@cam1 -t rsa -f /home/cam/.ssh/id_rsa \ +# "${target}/etc/apt/sources.list" <<-EOF + deb http://httpredir.debian.org/debian jessie main + deb-src http://httpredir.debian.org/debian jessie main + EOF +cat >"${target}/etc/apt/sources.list.d/jessie-backports.list" <<-EOF + deb http://httpredir.debian.org/debian jessie-backports main + deb-src http://httpredir.debian.org/debian jessie-backports main + EOF +in_target apt-get update || return 1 + +# Purge systemd. +info 'Purging systemd' +in_target apt-get -q -y purge libpam-systemd systemd || return 1 +in_target apt-get -q -y --purge autoremove || return 1 + +# Disable services. +printf '#!/bin/sh\n\nexit 101\n' >"${target}/usr/sbin/policy-rc.d" +chmod a+x "${target}/usr/sbin/policy-rc.d" + +# Install LedgerSMB. +info 'Installing LedgerSMB' +cat >"${target}/etc/apt/sources.list.d/ledgersmb.list" <<-EOF + deb https://apt.ledgersmb.org/ jessie main + deb-src https://apt.ledgersmb.org/ jessie main + EOF +wget -O - https://apt.ledgersmb.org/apt-ledgersmb-org_public-key.asc | \ + in_target apt-key add - || return 1 +in_target apt-get update || return 1 +i=0; while [ ${i} -lt 3 ]; do i=$((${i} + 1)) + DEBIAN_FRONTEND=noninteractive in_target apt-get -q -y install \ + ledgersmb && break +done || return 1 +# Ugly hack: +mv "${target}/etc/rc.local" "${target}/etc/rc.local.orig" +cat >"${target}/etc/rc.local" <<-EOF + #!/bin/sh -e + pg_dropcluster --stop 9.4 main + pg_createcluster --locale en_US.UTF-8 --start 9.4 main + /usr/share/ledgersmb/tools/config-lsmb-db-user.sh ledgersmb LEDGERSMBINITIAL + sudo -u postgres createuser -d odoo + mv /etc/rc.local.orig /etc/rc.local + EOF +chmod a+x "${target}/etc/rc.local" +# Another ugly hack: allow non-localhost connections. +sed -i '29,31s/^ / #/' "${target}/etc/apache2/conf-available/ledgersmb.conf" + +# Install Odoo. +info 'Installing Odoo' +cat >"${target}/etc/apt/sources.list.d/odoo.list" <<-EOF + deb http://nightly.odoo.com/9.0/nightly/deb/ ./ + deb-src http://nightly.odoo.com/9.0/nightly/deb/ ./ + EOF +wget -O - https://nightly.odoo.com/odoo.key | in_target apt-key add - || \ + return 1 +in_target apt-get update || return 1 +i=0; while [ ${i} -lt 3 ]; do i=$((${i} + 1)) + DEBIAN_FRONTEND=noninteractive in_target apt-get -q -y install \ + odoo && break +done || return 1 + +# Enable services. +rm -f "${target}/usr/sbin/policy-rc.d" + +# Remove packages from APT cache. +in_target apt-get clean || return 1 + +# Update initramfs. +info 'Updating initramfs' +in_target update-initramfs -u + +# Configure network interfaces. +cat >"${target}/etc/network/interfaces" <<-EOF +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +# The loopback network interface +auto lo +iface lo inet loopback + +# The primary network interface +auto eth0 +allow-hotplug eth0 +iface eth0 inet dhcp +EOF + +# Use temporary configuation SSH key. +install -d -o 1000 -g 1000 -m 0700 "${target}/home/user/.ssh" || return 1 +cat >"${target}/home/user/.ssh/id_rsa" <<-EOF + -----BEGIN RSA PRIVATE KEY----- + MIICXAIBAAKBgQCzAF0zqeS2X0TuVOIxqMec3lMzZy/MHQswPP+BQkmc2D3YVb2x + px1YAAweQnfZ27pGJkDztStOtMQJeaOsnAVdm2NSe+hEdaKAOxf9p6t+F930HM/w + 1wkm1ddlsnCaaCipzGVOM77Q/brEItWvuq8G0+/fgN1o4pZzl4Bub/4D4QIDAQAB + AoGAS+wKnAAiXuv3m7LrIa75w2JVHcdVcZicB0DICnYoLNtXF+v+AlzkSE/009zT + YtccoeZVxEiCbuajA3XRY0PlzgGHTbsGn1BWqI9cjdXTiotnjzOH8zr3JiMZMWwf + hqwbtleP+yruNPHMxQ8dKVXv875NKJW+aArmQWtjeMOy/vECQQDdsvPJ4bUu8M7/ + MXqGtz8CJbrRp+ZMKUw0WuwSwTfHRs/Jp27mWf5+t/u+RN8WK/RRD8FHvz4azLhr + sNUFiE69AkEAzrI/DFBFOM5mUECujs2UvCCeWZiAi9QoJ7kDrrAkcG+hMalpNUU3 + SUZ76stBUk3hZNpc82aq0a0o8ac0VrBd9QJAB3nbYrlrxLN2J4Dhot1XEJl5HUzO + JU9XNITEZTWCzgODSkeNI9NxE5DcumPUKgk9aeZgHC1EyN6ScX87D76y+QJAL8DE + ii69X1toDeBzs7BRTYlnrCFsiWGRiWPYMvKk6IkRv6x5DwKXvEkZdexRghdWHHvK + f71Xd6u+yt2rXN/QRQJBALv6SwbokdXp5qKJV48QG452dSOT7FQEINnCsIeNUKP6 + 9YyaZxqLia6pEbEKTSRdztXaMqRsrmOG8E084sFg8DQ= + -----END RSA PRIVATE KEY----- + EOF +in_target chown user:user '/home/user/.ssh/id_rsa' +in_target chmod 0600 '/home/user/.ssh/id_rsa' + +# Set up SSH known hosts. +cat >"${target}/home/user/.ssh/known_hosts" <<-EOF + |1|fypb7kn7NH0fqHGj9Xs/rdpO71s=|SCtg2BdMNB9zL5bAPYkJy1uiNSM= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + |1|z7it+otnWcn/98YKdeaBCXl+ug8=|NFRpdQZBMTAuWbUDAqXLptFR5Ao= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + EOF +in_target chown user:user '/home/user/.ssh/known_hosts' +in_target chmod 0600 '/home/user/.ssh/known_hosts' + +# Bootstrap vcsh and mr. +info 'Bootstrapping dotfiles' +rm -f "${target}/home/user/.profile" "${target}/home/user/.bashrc" \ + "${target}/home/user/.bash_logout" +in_target sudo -u user vcsh clone ssh://git@git.pehjota.net/dotfiles/mr.git mr \ + || return 1 +in_target sudo -u user mr update || return 1 + +# Generate target's SSH keypair. +#rm -f "${target}/home/user/.ssh/id_rsa" "${target}/home/user/.ssh/id_rsa.pub" \ +# || return 1 +#in_target ssh-keygen -b 4096 -C user@erp1 -t rsa -f /home/user/.ssh/id_rsa \ +# "${target}/etc/apt/sources.list" <<-EOF + deb http://httpredir.debian.org/debian jessie main + deb-src http://httpredir.debian.org/debian jessie main + EOF +cat >"${target}/etc/apt/sources.list.d/jessie-backports.list" <<-EOF + deb http://httpredir.debian.org/debian jessie-backports main + deb-src http://httpredir.debian.org/debian jessie-backports main + EOF +in_target apt-get update || return 1 + +# Purge systemd. +in_target apt-get -q -y purge libpam-systemd systemd || return 1 +in_target apt-get -q -y --purge autoremove || return 1 + +# Remove packages from APT cache. +in_target apt-get clean || return 1 + +# Install GRUB. +in_target update-grub +in_target grub-install "${dev}" + +# Update initramfs. +in_target update-initramfs -u + +# Configure network interfaces. +cat >"${target}/etc/network/interfaces" <<-EOF +# This file describes the network interfaces available on your system +# and how to activate them. For more information, see interfaces(5). + +# The loopback network interface +auto lo +iface lo inet loopback + +# The primary network interface +auto eth0 +allow-hotplug eth0 +iface eth0 inet dhcp +EOF + +# Use temporary configuation SSH key. +install -d -o 1000 -g 1000 -m 0700 "${target}/home/user/.ssh" || return 1 +cat >"${target}/home/user/.ssh/id_rsa" <<-EOF + -----BEGIN RSA PRIVATE KEY----- + MIICXAIBAAKBgQCzAF0zqeS2X0TuVOIxqMec3lMzZy/MHQswPP+BQkmc2D3YVb2x + px1YAAweQnfZ27pGJkDztStOtMQJeaOsnAVdm2NSe+hEdaKAOxf9p6t+F930HM/w + 1wkm1ddlsnCaaCipzGVOM77Q/brEItWvuq8G0+/fgN1o4pZzl4Bub/4D4QIDAQAB + AoGAS+wKnAAiXuv3m7LrIa75w2JVHcdVcZicB0DICnYoLNtXF+v+AlzkSE/009zT + YtccoeZVxEiCbuajA3XRY0PlzgGHTbsGn1BWqI9cjdXTiotnjzOH8zr3JiMZMWwf + hqwbtleP+yruNPHMxQ8dKVXv875NKJW+aArmQWtjeMOy/vECQQDdsvPJ4bUu8M7/ + MXqGtz8CJbrRp+ZMKUw0WuwSwTfHRs/Jp27mWf5+t/u+RN8WK/RRD8FHvz4azLhr + sNUFiE69AkEAzrI/DFBFOM5mUECujs2UvCCeWZiAi9QoJ7kDrrAkcG+hMalpNUU3 + SUZ76stBUk3hZNpc82aq0a0o8ac0VrBd9QJAB3nbYrlrxLN2J4Dhot1XEJl5HUzO + JU9XNITEZTWCzgODSkeNI9NxE5DcumPUKgk9aeZgHC1EyN6ScX87D76y+QJAL8DE + ii69X1toDeBzs7BRTYlnrCFsiWGRiWPYMvKk6IkRv6x5DwKXvEkZdexRghdWHHvK + f71Xd6u+yt2rXN/QRQJBALv6SwbokdXp5qKJV48QG452dSOT7FQEINnCsIeNUKP6 + 9YyaZxqLia6pEbEKTSRdztXaMqRsrmOG8E084sFg8DQ= + -----END RSA PRIVATE KEY----- + EOF +in_target chown user:user '/home/user/.ssh/id_rsa' +in_target chmod 0600 '/home/user/.ssh/id_rsa' + +# Set up SSH known hosts. +cat >"${target}/home/user/.ssh/known_hosts" <<-EOF + |1|fypb7kn7NH0fqHGj9Xs/rdpO71s=|SCtg2BdMNB9zL5bAPYkJy1uiNSM= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + |1|z7it+otnWcn/98YKdeaBCXl+ug8=|NFRpdQZBMTAuWbUDAqXLptFR5Ao= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXcG5BuZi4947D9WqY1L6CzaH4Qjw7YA7Dja+09y0nZjLVDd1saZCPkTjo1PEHxVCvSHvc0VmRqIZ2wUGtuqIlgGPMphCPAtdHN63YcNXqIhjEygLsaSZgy1Qz33YQF+YSANbeZQ4vnqiYr3C1IA7Cw4km/0s1BvP3t9yJf/iYODZqjVqUhqB4hzXJcBZHrgnM4LmPD4NH81fCqpwfRviNQNFAqd/aT1YTvgdn46HTVz7dV8ahW6SLXBTJZvO9dLAAKOPPZwuluaRphBqjPLC83zsihQ884SAH+AKcpN1ne73UZUuA1Gyk3HW+a/ngbzm1nmoeC0Sm1nNlTvC4WrLD + EOF +in_target chown user:user '/home/user/.ssh/known_hosts' +in_target chmod 0600 '/home/user/.ssh/known_hosts' + +# Bootstrap vcsh and mr. +rm -f "${target}/home/user/.profile" "${target}/home/user/.bashrc" \ + "${target}/home/user/.bash_logout" +in_target sudo -u user vcsh clone ssh://git@git.pehjota.net/dotfiles/mr.git mr \ + || return 1 +in_target sudo -u user mr update || return 1 + +# Generate target's SSH keypair. +#rm -f "${target}/home/user/.ssh/id_rsa" "${target}/home/user/.ssh/id_rsa.pub" \ +# || return 1 +#in_target ssh-keygen -b 4096 -C user@generic1 -t rsa \ +# -f /home/user/.ssh/id_rsa