]> gitweb.fluxo.info Git - hydra.git/commitdiff
Provision: work folder
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 24 Sep 2015 16:26:32 +0000 (13:26 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 24 Sep 2015 16:26:32 +0000 (13:26 -0300)
share/hydractl/provision

index bafc8b6141c0bfee0b4523ad32784dc88c7d1ee4..b15c7683d171ba133ce3d2d84c276fc71580b8ab 100755 (executable)
@@ -137,6 +137,9 @@ if [ ! -z "$1" ]; then
   fi
 fi
 
+# Parameters
+WORK="/tmp/debootstrap"
+
 # Get config parameters.
 hydra_provision_config
 
@@ -219,15 +222,15 @@ if [ "$garbage" == "y" ]; then
 fi
 
 # Make sure that the mountpoint exists
-hydra_sudo_run mkdir -p /tmp/debootstrap
+hydra_sudo_run mkdir -p $WORK
 
 # Setup mountpoint and make sure it's not mounted due to a failed install.
-if cat /proc/mounts | cut -d ' ' -f 2 | grep -q "^/tmp/debootstrap$"; then
-  hydra_sudo_run umount /tmp/debootstrap
+if cat /proc/mounts | cut -d ' ' -f 2 | grep -q "^$WORK$"; then
+  hydra_sudo_run umount $WORK
 
   for folder in proc dev home var boot sys; do
-    if cat /proc/mounts | cut -d ' ' -f 2 | grep -q "^/tmp/debootstrap/$folder$"; then
-      hydra_sudo_run umount /tmp/debootstrap/$folder
+    if cat /proc/mounts | cut -d ' ' -f 2 | grep -q "^$WORK/$folder$"; then
+      hydra_sudo_run umount $WORK/$folder
     fi
   done
 fi
@@ -253,120 +256,120 @@ if [ "$var_size" != "0" ]; then
 fi
 
 # Mount root volume.
-hydra_sudo_run mount $install_device /tmp/debootstrap/
+hydra_sudo_run mount $install_device $WORK/
 
 # Mount additional volumes.
 if [ "$home_size" != "0" ]; then
-  mkdir /tmp/debootstrap/home
+  mkdir $WORK/home
 
   if [ "$encrypt" == "y" ]; then
-    hydra_sudo_run mount /dev/mapper/provision-home /tmp/debootstrap/home
+    hydra_sudo_run mount /dev/mapper/provision-home $WORK/home
   else
-    hydra_sudo_run mount /dev/mapper/$vg-home /tmp/debootstrap/home
+    hydra_sudo_run mount /dev/mapper/$vg-home $WORK/home
   fi
 fi
 
 if [ "$var_size" != "0" ]; then
-  hydra_sudo_run mkdir /tmp/debootstrap/var
+  hydra_sudo_run mkdir $WORK/var
 
   if [ "$encrypt" == "y" ]; then
-    hydra_sudo_run mount /dev/mapper/provision-var /tmp/debootstrap/var
+    hydra_sudo_run mount /dev/mapper/provision-var $WORK/var
   else
-    hydra_sudo_run mount /dev/mapper/$vg-var /tmp/debootstrap/var
+    hydra_sudo_run mount /dev/mapper/$vg-var $WORK/var
   fi
 fi
 
 # Initial system install.
 echo "Installing base system..."
-hydra_sudo_run debootstrap --arch=$arch $version /tmp/debootstrap/ $mirror
+hydra_sudo_run debootstrap --arch=$arch $version $WORK/ $mirror
 
 # Initial configuration.
 echo "Applying initial configuration..."
-hydra_sudo_run mount none -t proc /tmp/debootstrap/proc
-hydra_sudo_run mount none -t sysfs /tmp/debootstrap/sys
-hydra_sudo_run mount -o bind /dev/ /tmp/debootstrap/dev
-echo LANG=C | $SUDO tee /tmp/debootstrap/etc/default/locale
+hydra_sudo_run mount none -t proc $WORK/proc
+hydra_sudo_run mount none -t sysfs $WORK/sys
+hydra_sudo_run mount -o bind /dev/ $WORK/dev
+echo LANG=C | $SUDO tee $WORK/etc/default/locale
 
 # Resolver configuration.
-echo "domain $domain"            | $SUDO tee    /tmp/debootstrap/etc/resolv.conf
-echo "search $hostname.$domain"  | $SUDO tee -a /tmp/debootstrap/etc/resolv.conf
-grep nameserver /etc/resolv.conf | $SUDO tee -a /tmp/debootstrap/etc/resolv.conf
+echo "domain $domain"            | $SUDO tee    $WORK/etc/resolv.conf
+echo "search $hostname.$domain"  | $SUDO tee -a $WORK/etc/resolv.conf
+grep nameserver /etc/resolv.conf | $SUDO tee -a $WORK/etc/resolv.conf
 
 # Hostname configuration.
-echo $hostname.$domain                       | $SUDO tee    /tmp/debootstrap/etc/hostname
-echo "127.0.0.1 localhost"                   | $SUDO tee -a /tmp/debootstrap/etc/hosts
-echo "127.0.0.1 $hostname $hostname.$domain" | $SUDO tee -a /tmp/debootstrap/etc/hosts
+echo $hostname.$domain                       | $SUDO tee    $WORK/etc/hostname
+echo "127.0.0.1 localhost"                   | $SUDO tee -a $WORK/etc/hosts
+echo "127.0.0.1 $hostname $hostname.$domain" | $SUDO tee -a $WORK/etc/hosts
 
 # Invert hostname contents to avoid http://projects.puppetlabs.com/issues/2533
-tac /tmp/debootstrap/etc/hosts | $SUDO tee /tmp/debootstrap/etc/hosts.new
-hydra_sudo_run mv /tmp/debootstrap/etc/hosts.new /tmp/debootstrap/etc/hosts
+tac $WORK/etc/hosts | $SUDO tee $WORK/etc/hosts.new
+hydra_sudo_run mv $WORK/etc/hosts.new $WORK/etc/hosts
 
 # Initial upgrade.
 echo "Applying initial upgrades..."
-hydra_sudo_run chroot /tmp/debootstrap/ apt-get update
-hydra_sudo_run chroot /tmp/debootstrap/ apt-get upgrade -y
-hydra_sudo_run chroot /tmp/debootstrap/ apt-get install locales cryptsetup lvm2 initramfs-tools -y
+hydra_sudo_run chroot $WORK/ apt-get update
+hydra_sudo_run chroot $WORK/ apt-get upgrade -y
+hydra_sudo_run chroot $WORK/ apt-get install locales cryptsetup lvm2 initramfs-tools -y
 
 # Crypttab.
 echo "Configuring crypttab..."
-echo "# <target name> <source device>   <key file>  <options>" > /tmp/debootstrap/etc/crypttab
+echo "# <target name> <source device>   <key file>  <options>" > $WORK/etc/crypttab
 
 if [ "$encrypt" == "y" ]; then
-  cat <<-EOF | $SUDO tee /tmp/debootstrap/etc/crypttab
+  cat <<-EOF | $SUDO tee $WORK/etc/crypttab
 root            /dev/mapper/$vg-root      none            luks
 EOF
 fi
 
 if [ "$home_size" != "0" ] && [ "$encrypt" == "y" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/crypttab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/crypttab
 home            /dev/mapper/$vg-home      none            luks
 EOF
 fi
 
 if [ "$var_size" != "0" ] && [ "$encrypt" == "y" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/crypttab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/crypttab
 var             /dev/mapper/$vg-var       none            luks
 EOF
 fi
 
 if [ "$swap_size" != "0" ] && [ "$random_swap" == "y" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/crypttab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/crypttab
 swap            /dev/mapper/$vg-swap      /dev/random     swap,cipher=aes-xts-plain64:sha256
 EOF
 fi
 
 if [ "$swap_size" != "0" ] && [ "$random_swap" != "y" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/crypttab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/crypttab
 swap            /dev/mapper/$vg-swap      none        luks,swap
 EOF
 fi
 
 # Fstab.
 echo "Configuring fstab..."
-echo "" | hydra_safe_run tee /tmp/debootstrap/etc/fstab
+echo "" | $SUDO tee $WORK/etc/fstab
 if [ "$swap_size" != "0" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/fstab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/fstab
 /dev/mapper/swap      none           swap  sw                                 0 0
 EOF
 fi
 
 if [ "$encrypt" == "y" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/fstab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/fstab
 /dev/mapper/root      /              ext4  defaults,errors=remount-ro         0 1
 EOF
 else
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/fstab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/fstab
 /dev/mapper/$vg-root   /              ext4  defaults,errors=remount-ro         0 1
 EOF
 fi
 
 if [ "$home_size" != "0" ]; then
   if [ "$encrypt" == "y" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/fstab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/fstab
 /dev/mapper/home      /home          ext4  defaults,errors=remount-ro         0 2
 EOF
   else
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/fstab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/fstab
 /dev/mapper/$vg-home   /home          ext4  defaults,errors=remount-ro         0 2
 EOF
   fi
@@ -374,11 +377,11 @@ fi
 
 if [ "$var_size" != "0" ]; then
   if [ "$encrypt" == "y" ]; then
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/fstab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/fstab
 /dev/mapper/var       /var           ext4  defaults,errors=remount-ro         0 2
 EOF
   else
-  cat <<-EOF | $SUDO tee -a /tmp/debootstrap/etc/fstab
+  cat <<-EOF | $SUDO tee -a $WORK/etc/fstab
 /dev/mapper/$vg-var    /var           ext4  defaults,errors=remount-ro         0 2
 EOF
   fi
@@ -388,16 +391,16 @@ fi
 if [ "$grub" == "y" ]; then
   echo "Boot device setup..."
   hydra_sudo_run mkfs.ext4 $boot_device
-  hydra_sudo_run mount $boot_device /tmp/debootstrap/boot
-  echo "$reboot_device /boot ext4 defaults,errors=remount-ro 0 2" | hydra_safe_run tee -a /tmp/debootstrap/etc/fstab
+  hydra_sudo_run mount $boot_device $WORK/boot
+  echo "$reboot_device /boot ext4 defaults,errors=remount-ro 0 2" | $SUDO tee -a $WORK/etc/fstab
 
   echo "Setting up GRUB..."
-  hydra_sudo_run chroot /tmp/debootstrap/ apt-get install grub-pc -y
+  hydra_sudo_run chroot $WORK/ apt-get install grub-pc -y
 fi
 
 # Kernel.
 echo "Installing kernel..."
-cat <<-EOF | $SUDO tee /tmp/debootstrap/etc/initramfs-tools/modules
+cat <<-EOF | $SUDO tee $WORK/etc/initramfs-tools/modules
 dm-mod
 dm-crypt
 dm-raid
@@ -406,7 +409,7 @@ twofish
 sha256
 EOF
 
-cat <<-EOF | $SUDO tee /tmp/debootstrap/etc/kernel-img.conf
+cat <<-EOF | $SUDO tee $WORK/etc/kernel-img.conf
 do_initrd = Yes
 EOF
 
@@ -417,33 +420,33 @@ else
 fi
 
 if [ "$version" == "squeeze" ]; then
-  hydra_sudo_run chroot /tmp/debootstrap apt-get install linux-image-2.6-vserver-$kernel_arch -y
+  hydra_sudo_run chroot $WORK apt-get install linux-image-2.6-vserver-$kernel_arch -y
 else
-  hydra_sudo_run chroot /tmp/debootstrap apt-get install linux-image-$kernel_arch -y
+  hydra_sudo_run chroot $WORK apt-get install linux-image-$kernel_arch -y
 fi
 
 # Initramfs.
 echo "Creating initramfs..."
-hydra_sudo_run chroot /tmp/debootstrap update-initramfs -v -u
+hydra_sudo_run chroot $WORK update-initramfs -v -u
 
 # Utils.
 echo "Installing basic utilities..."
-hydra_sudo_run chroot /tmp/debootstrap apt-get install screen cron lsb-release openssl -y
+hydra_sudo_run chroot $WORK apt-get install screen cron lsb-release openssl -y
 
 # Ssh.
 echo "Installing OpenSSH daemon..."
-hydra_sudo_run chroot /tmp/debootstrap apt-get install openssh-server -y
+hydra_sudo_run chroot $WORK apt-get install openssh-server -y
 
 echo "OpenSSH fingerprints:"
-hydra_sudo_run chroot /tmp/debootstrap ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub
-hydra_sudo_run chroot /tmp/debootstrap ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
+hydra_sudo_run chroot $WORK ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub
+hydra_sudo_run chroot $WORK ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
 
 # Accounts.
 echo "Installing sudo..."
-hydra_sudo_run chroot /tmp/debootstrap apt-get install sudo -y
+hydra_sudo_run chroot $WORK apt-get install sudo -y
 
 echo "Choose a root password."
-hydra_sudo_run chroot /tmp/debootstrap passwd root
+hydra_sudo_run chroot $WORK passwd root
 
 cat <<-EOF