From 66a37d779174264eb3175ad983542cd6aa4cd3e1 Mon Sep 17 00:00:00 2001 From: max Date: Fri, 18 Apr 2025 15:33:25 +0000 Subject: [PATCH] =?UTF-8?q?esx=5Fupdate.sh=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- esx_update.sh | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 esx_update.sh diff --git a/esx_update.sh b/esx_update.sh new file mode 100644 index 0000000..ad8bd7a --- /dev/null +++ b/esx_update.sh @@ -0,0 +1,138 @@ +#!/bin/sh + +# esxcli system maintenanceMode set --enable true +# esxcli system maintenanceMode get + + + +# wget --no-check-certificate https://git.gethome.at/max/esx_Update_Script/raw/branch/main/update.sh + + +# esxcli network firewall ruleset list -r httpClient +# esxcli network firewall ruleset set -e true -r httpClient + + + +# grep 'mem=' /usr/lib/vmware/esxcli-software + +# esxcli system settings advanced set -o /VisorFS/VisorFSPristineTardisk -i 0 +# cp /usr/lib/vmware/esxcli-software /usr/lib/vmware/esxcli-software.bak +# sed -i 's/mem=500/mem=300/g' /usr/lib/vmware/esxcli-software.bak +# mv /usr/lib/vmware/esxcli-software.bak /usr/lib/vmware/esxcli-software -f +# esxcli system settings advanced set -o /VisorFS/VisorFSPristineTardisk -i 1 + +# esxcli software profile update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-8.0U3c-24414501-standard + + + + +echo "ESX Update Script" +echo "*****************" +echo + + +echo "checking ESXCLI memory limit ..." +mem="$(grep 'mem=' /usr/lib/vmware/esxcli-software | cut -d'=' -f3)" +updatemem=false + + +if [ ${mem} -lt 500 ] +then + echo "ESXCLI memory ${mem}MB is too small" + + + read -p "Update ESXCLI memory from ${mem}MB to 500MB? (y/N): " confirm + case "$confirm" in + [yY] | [yY][eE][Ss]) updatemem=true;; + *) ;; + esac + + + if [ "$updatemem" = true ] + then + echo "Update ESXCLI memory to 500MB ..." + esxcli system settings advanced set -o /VisorFS/VisorFSPristineTardisk -i 0 + cp /usr/lib/vmware/esxcli-software /usr/lib/vmware/esxcli-software.bak + sed -i 's/mem=300/mem=500/g' /usr/lib/vmware/esxcli-software.bak + mv /usr/lib/vmware/esxcli-software.bak /usr/lib/vmware/esxcli-software -f + esxcli system settings advanced set -o /VisorFS/VisorFSPristineTardisk -i 1 + else + echo "ESXCLI memory is ${mem}MB" + echo "Script can't run with this config" + exit 1 + fi + +else + echo "ESXCLI memory ${mem}MB is big enough" +fi + + +echo +echo "checking Current version ..." +echo + +current="$(esxcli software profile get | sed '1!d' \ + | cut -d' ' -f2)" +echo "Current Version: ${current}" + +echo +echo "checking Latest version of ESXi ..." +echo "this may take some time" +echo + +latest="$(esxcli software sources profile list \ + --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml \ + | sort -k4 \ + | tail -2 | head -1 \ + | sed \ + -e 's/VMware.*$//' )" +echo "Latest Version: ${latest}" +echo + + +if [ ${current}=${latest} ] +then + echo "System is Up to date" + echo + exit 1 +else + read -p "Update host from ${current} to ${latest}? (y/N): " confirm + case "$confirm" in + [yY] | [yY][eE][Ss]) update=true;; + *) exit 1;; + esac +fi + +if [ "$update" = true ] +then + +#esxcli system maintenanceMode get + +mmode="$(esxcli system maintenanceMode get)" +echo "Maintenance Mode: ${mmode}" + + if [ ${mmode}=='Disabled' ] + then + changemode = false + echo "Maintenance Mode needs to be enabled" + read -p "enable Maintenance Mode? (y/N): " confirm + case "$confirm" in + [yY] | [yY][eE][Ss]) changemode=true;; + *) ;; + esac + if [ "$changemode" = true ] + then + esxcli system maintenanceMode set --enable true + else + echo "Maintenance Mode needs to be enabled" + echo "Script can't run with this config" + exit 1 + fi + + + else + echo "Updating to ${latest}..." + esxcli software profile update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ${latest} + fi + +fi \ No newline at end of file