]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blobdiff - bin/install_script.sh
Merge install scripts
[perso/Immae/Projets/Puppet.git] / bin / install_script.sh
similarity index 55%
rename from bin/install_script_ovh_vps_ssd.sh
rename to bin/install_script.sh
index b5b0efbbc9978b34dca092155e10a55e5ed0b1b4..bd7f38bdd9008a4caf7a4b43063e84457f394b57 100755 (executable)
@@ -2,39 +2,63 @@
 
 usage() {
 cat <<EOF
-  $0 [options]
+$(basename $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)
+
+  One of the following options is necessary:
+  --instance-id id        Id of the cloud instance
+  --vps-id id             Id of the vps
+
+  Optional arguments:
+  --password password     Password of the host (only useful in case of no reboot and vps)
   --reinstall-first       Start with reinstalling the vps
-  --host-user user        Use another user (default: root)
+  --host-user user        Use another user than the default one
   --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)
+  --git-branch branch     Use another puppet branch (default: master)
+  --environment env       Environment to use for the install (default: production)
 EOF
 }
 
 set -e
 
-host_user=root
 git_branch=master
 environment=production
+host_user=""
+password=""
+T=""
 
 while [ -n "$1" ]; do
   case "$1" in
-    --vps)
-      vps_name="$2"
+    --instance-id)
+      host_id="$2"
+      if [ -z "$host_user" ]; then
+        host_user="arch"
+      fi
+      if [ -z "$password" ]; then
+        password="x"
+      fi
+      [ -n "$T" ] && usage && exit 1
+      T="ovh_cloud_instance"
       shift
       ;;
-    --reinstall-first)
-      reinstall_first=1
+    --vps-id)
+      host_id="$2"
+      if [ -z "$host_user" ]; then
+        host_user="root"
+      fi
+      [ -n "$T" ] && usage && exit 1
+      T="ovh_vps_ssd"
+      shift
       ;;
     --password)
       password="$2"
       shift
       ;;
+    --reinstall-first)
+      reinstall_first=1
+      ;;
     --host-user)
       host_user="$2"
       shift
@@ -65,24 +89,27 @@ while [ -n "$1" ]; do
   shift
 done
 
+if [ -z "$T" -o -z "$host_id" ]; then
+  usage
+  exit 1
+fi
+
 DIRECTORY=$(cd `dirname $0` && pwd)
 PYTHON_DIRECTORY="$DIRECTORY/../python"
 SCRIPTS="$DIRECTORY/../scripts"
 
-if [ -z "$vps_name" ]; then
-  read -p "Nom du vps : " vps_name
-fi
-
 if [ -n "$reinstall_first" ]; then
   echo "Réinstallation du système"
-  python $PYTHON_DIRECTORY/reinstall_vps_server.py --use-current "$vps_name"
+  python $PYTHON_DIRECTORY/reinstall_$T.py --use-current "$host_id"
 
   read -p "Appuyer sur une touche quand le serveur est prêt" ready
 fi
 
 if [ -z "$no_reboot" -a -z "$no_reboot_start" ]; then
   echo "Patienter le temps du reboot"
-  python $PYTHON_DIRECTORY/reboot_vps_server.py --rescue "$vps_name"
+  python $PYTHON_DIRECTORY/reboot_$T.py --rescue "$host_id"
+
+  read -p "Appuyer sur une touche quand l'instance a redémarré" ready
 fi
 
 if [ -z "$password" ]; then
@@ -92,19 +119,24 @@ if [ -z "$password" ]; then
 fi
 
 ARCH_DIR=`mktemp -d`
-ARCH_HOST_SCRIPT="$SCRIPTS/ovh_vps_ssd/arch_host_script.sh"
-ARCH_CHROOT_SCRIPT="$SCRIPTS/ovh_vps_ssd/arch_chroot_script.sh"
+ARCH_HOST_SCRIPT="$SCRIPTS/$T/arch_host_script.sh"
+if [ -f "$SCRIPTS/$T/arch_chroot_script.sh" ]; then
+  ARCH_CHROOT_SCRIPT="$SCRIPTS/$T/arch_chroot_script.sh"
+else
+  ARCH_CHROOT_SCRIPT=""
+fi
 ARCH_INSTALL_SCRIPT="$SCRIPTS/arch_install_script.sh"
-ARCH_HOST_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/ovh_vps_ssd/arch_host_puppet_configuration_script.sh"
+ARCH_HOST_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/$T/arch_host_puppet_configuration_script.sh"
 ARCH_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/arch_puppet_configuration_script.sh"
 ARCH_PUPPET_INITIAL_CONFIGURATION="$ARCH_DIR/puppet_variables.json"
 
 trap "rm -rf $ARCH_DIR" EXIT
 
 #### Base installation stage
-python $PYTHON_DIRECTORY/get_initial_configuration.py $vps_name > $ARCH_PUPPET_INITIAL_CONFIGURATION
+python $PYTHON_DIRECTORY/get_initial_configuration_$T.py $host_id > $ARCH_PUPPET_INITIAL_CONFIGURATION
+host_address=$(python $PYTHON_DIRECTORY/get_initial_configuration_$T.py $host_id | jq -r '.ips.v4.ipAddress')
 
-dest="$host_user@$vps_name"
+dest="$host_user@$host_address"
 files="$ARCH_HOST_SCRIPT $ARCH_CHROOT_SCRIPT $ARCH_PUPPET_INITIAL_CONFIGURATION $ARCH_INSTALL_SCRIPT"
 
 $SCRIPTS/send_and_run.tcl "$dest" "$password" "$git_branch" "$environment" $files
@@ -119,5 +151,5 @@ $SCRIPTS/send_and_run.tcl "$dest" "$password" "$git_branch" "$environment" $file
 ### Installation finished
 if [ -z "$no_reboot" -a -z "$no_reboot_end" ]; then
   echo "Rebooting"
-  python $PYTHON_DIRECTORY/reboot_vps_server.py --local "$vps_name"
+  python $PYTHON_DIRECTORY/reboot_$T.py --local "$host_id"
 fi