Inital commit
This commit is contained in:
94
functions.sh
Normal file
94
functions.sh
Normal file
@@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
|
||||
##########################
|
||||
# ProxMox update tools #
|
||||
# FUNCTIONS #
|
||||
# @author: Bram Prieshof #
|
||||
##########################
|
||||
|
||||
#Update Packages and Applications on CT
|
||||
#CT-UpdateBoth () {
|
||||
# local CTID=$1
|
||||
# echo "Updating Packages and Applications for $CTID"
|
||||
# CT-UpdatePackages
|
||||
# CT-UpdateApplicatons
|
||||
#}
|
||||
|
||||
##Update Packages and Applications on VM
|
||||
#VM-UpdateBoth () {
|
||||
# local VMID=$1
|
||||
# echo "Updating Packages and Applications for $VMID"
|
||||
# VM-UpdatePackages
|
||||
# VM-UpdateApplicatons
|
||||
#}
|
||||
|
||||
#Updating Packages on CT
|
||||
CT-UpdatePackages () {
|
||||
#If not called by UpdateBoth then set $1 as CTID
|
||||
if [ -z ${CTID+x} ]; then local CTID=$1;fi
|
||||
echo "Updating Packages for $CTID"
|
||||
#Getting distributionname
|
||||
local DIST=$(pct exec $CTID -- awk -F= '$1=="ID" { print $2 ;}' /etc/os-release)
|
||||
local INSTCALL="pct exec $CTID"
|
||||
#Call generic package updater
|
||||
UpdatePackages
|
||||
unset DIST INSTCALL
|
||||
}
|
||||
|
||||
#Updating Packages on VM
|
||||
VM-UpdatePackages () {
|
||||
#If not called by UpdateBoth then set $1 as VMID
|
||||
if [ -z ${VMID+x} ]; then local VMID=$1;fi
|
||||
echo "Updating Packages for $VMID, No output is provided until task is completed"
|
||||
#Getting distributionname
|
||||
local DIST=$(qm guest exec $VMID -- awk -F= '$1=="ID" { print $2 ;}' /etc/os-release | jq '.["out-data"]')
|
||||
local INSTCALL="qm guest exec $VMID"
|
||||
#Call generic package updater
|
||||
UpdatePackages
|
||||
unset DIST INSTCALL
|
||||
}
|
||||
|
||||
#Starts package manager, called by CT-UpdatePackages and VM-UpdatePackages
|
||||
UpdatePackages () {
|
||||
#Getting distributionname
|
||||
if [[ "${DIST}" == *"ubuntu"* ]] || [[ "${DIST}" == *"debian"* ]]; then
|
||||
$INSTCALL -- apt update
|
||||
$INSTCALL -- apt upgrade -y
|
||||
elif [[ "${DIST}" == *"alpine"* ]]; then
|
||||
$INSTCALL -- apk update
|
||||
$INSTCALL -- apk upgrade
|
||||
elif [[ "${DIST}" == *"centos"* ]]; then
|
||||
$INSTCALL -- dnf update -y
|
||||
else
|
||||
echo "Warning: Package manager in not supported"
|
||||
#exit 100
|
||||
fi
|
||||
}
|
||||
|
||||
#Updating CT applications using /opt/ProxMoxToolKitAppUpdate.sh in CT
|
||||
CT-UpdateApplicatons () {
|
||||
#If not called by UpdateBoth then set $1 as CTID
|
||||
if [ -z ${CTID+x} ]; then local CTID=$1;fi
|
||||
#Test if CT has Applicatons update script
|
||||
if pct exec $CTID -- test -f /opt/ProxMoxToolKitAppUpdate.sh ; then
|
||||
echo "Updating Applications for $CTID"
|
||||
pct exec $CTID -- sh /opt/ProxMoxToolKitAppUpdate.sh
|
||||
else
|
||||
echo "Warning: Application updates not enabled in $CTID"
|
||||
#exit 102
|
||||
fi
|
||||
}
|
||||
|
||||
#Updating VM applications using /opt/ProxMoxToolKitAppUpdate.sh in VM
|
||||
VM-UpdateApplicatons () {
|
||||
#If not called by UpdateBoth then set $1 as VMID
|
||||
if [ -z ${VMID+x} ]; then local VMID=$1;fi
|
||||
#Test if VM has Applicatons update script
|
||||
if [ $(qm guest exec $VMID -- test -f /opt/ProxMoxToolKitAppUpdate.sh |jq '.exitcode') == 0 ] ; then
|
||||
echo "Updating Applications for $VMID, No output is provided until task is completed"
|
||||
qm guest exec $VMID -- sh /opt/ProxMoxToolKitAppUpdate.sh
|
||||
else
|
||||
echo "Warning: application updates not enabled in $VMID"
|
||||
#exit 102
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user