]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blobdiff - bin/install_script.sh
Fetch node informations from LDAP
[perso/Immae/Projets/Puppet.git] / bin / install_script.sh
index 3a5900689b6f0b74947656103e3de593d14115d0..6b1aa39cc2d9a0153f666894f75df17155a41603 100755 (executable)
@@ -1,9 +1,26 @@
 #!/bin/bash
 
+usage() {
+cat <<EOF
+  $0 [options]
+  --help,-h               This help
+  --vps vps_name          Name of the vps
+  --password password     Password of the vps (only useful in case of no reboot)
+  --reinstall-first       Start with reinstalling the vps
+  --host-user user        Use another user (default: root)
+  --no-reboot             Don't reboot
+  --no-reboot-start       Don't reboot to rescue at the beginning
+  --no-reboot-end         Don't reboot to normal at the end
+  --git-branch            Use another puppet branch (default: master)
+  --environment           Environment to use for the installl (default: production)
+EOF
+}
+
 set -e
 
 host_user=root
 git_branch=master
+environment=production
 
 while [ -n "$1" ]; do
   case "$1" in
@@ -35,6 +52,14 @@ while [ -n "$1" ]; do
       git_branch="$2"
       shift
       ;;
+    --environment)
+      environment="$2"
+      shift
+      ;;
+    --help|-h)
+      usage
+      exit 0
+      ;;
   esac
 
   shift
@@ -97,7 +122,7 @@ tar -xzf "\$NAME"
 
 echo 'Server = http://archlinux.mirrors.ovh.net/archlinux/\$repo/os/\$arch' > /tmp/root.x86_64/etc/pacman.d/mirrorlist
 
-DEVICE_STR=\$(cat /proc/mounts | grep "/dev/sd.. /mnt/")
+DEVICE_STR=\$(cat /proc/mounts | grep "/dev/[sv]d.. /mnt/")
 DEVICE=\$(echo "\$DEVICE_STR" | cut -d' ' -f1)
 MOUNTPOINT=\$(echo "\$DEVICE_STR" | cut -d' ' -f2)
 
@@ -154,9 +179,9 @@ cat > $ARCH_INSTALL_SCRIPT <<EOF
 CODE_PATH="/etc/puppetlabs/code"
 rm -rf \$CODE_PATH
 git clone -b $git_branch --recursive https://git.immae.eu/perso/Immae/Projets/Puppet.git \$CODE_PATH
-puppet apply --test \$CODE_PATH/manifests/site.pp
+puppet apply --environment $environment --tags base_installation --test \$CODE_PATH/manifests/site.pp
 # The password seed requires puppet to be run twice
-puppet apply --test \$CODE_PATH/manifests/site.pp
+puppet apply --environment $environment --tags base_installation --test \$CODE_PATH/manifests/site.pp
 EOF
 
 chmod a+x $ARCH_HOST_SCRIPT $ARCH_CHROOT_SCRIPT $ARCH_INSTALL_SCRIPT
@@ -178,11 +203,11 @@ read -p "Press key when LDAP is configured" i
 
 cat > $ARCH_PUPPET_CONFIGURATION_SCRIPT <<EOF
 CODE_PATH="/etc/puppetlabs/code"
-puppet apply --test \$CODE_PATH/manifests/site.pp
+puppet apply --environment $environment --tags base_installation --test \$CODE_PATH/manifests/site.pp
 EOF
 
 cat > $ARCH_HOST_PUPPET_CONFIGURATION_SCRIPT <<EOF
-DEVICE_STR=\$(cat /proc/mounts | grep "/dev/sd.. /mnt/")
+DEVICE_STR=\$(cat /proc/mounts | grep "/dev/[sv]d.. /mnt/")
 DEVICE=\$(echo "\$DEVICE_STR" | cut -d' ' -f1)
 MOUNTPOINT=\$(echo "\$DEVICE_STR" | cut -d' ' -f2)