ProxmoxVE/vm/pimox-haos-vm.sh
oOStroudyOo 53ed69e090 Squashed commit of the following:
commit 995fa24aaffa98b8e12e8ebe084cbce61f605995
Author: oOStroudyOo <111181956+oOStroudyOo@users.noreply.github.com>
Date:   Mon Dec 23 14:41:35 2024 +0000

    Improve motd

    Added gold colour.
    Added TABS (A longer version of TAB for central heading / Reduced code).
    Added building icon.
    Added hammer and spanner icon (GitHub).
    Change LXC Container title to more central location and in gold.
    Added website URL.
    Split the lines to show Org, Website and GitHub on separate lines.
    Change Org icon to building.
    Added the hammer and spanner emoji to GitHub line.
    Changed IP icon from idea to network.
    Added line break under the title for better readability.
    Added line break under the IP address for better readability.

commit 0d18fb33ce
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sun Dec 22 10:45:03 2024 +0100

    Update navidrome-install.sh

commit 003f7c3ab4
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sun Dec 22 10:42:47 2024 +0100

    Update navidrome.sh

commit 525362f3c5
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Fri Dec 20 09:20:20 2024 +0100

    Changes

commit 9e6770f03b
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Fri Dec 20 09:14:04 2024 +0100

    Change to dpkg -i

commit 775ed987db
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Thu Dec 19 15:33:28 2024 +0100

    New Script: CheckMk

commit 8950eb302e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Thu Dec 19 09:48:05 2024 +0100

    Update apache-guacamole-install.sh

commit 3ac7c9093b
Merge: 9ae03880 75772753
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Thu Dec 19 09:28:30 2024 +0100

    Merge branch 'develop' of https://github.com/community-scripts/ProxmoxVE into develop

commit 9ae03880a4
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Thu Dec 19 09:28:13 2024 +0100

    Update Bookstack for testing

commit 757727537b
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 16:37:01 2024 +0100

    Update apache-guacamole-install.sh

commit 7e2b1fd87f
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 15:05:32 2024 +0100

    Suppres output

commit c00c17290e
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 14:10:01 2024 +0100

    Update zammad-install.sh

commit 66fafe2b10
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 14:00:00 2024 +0100

    Update zammad-install.sh

commit c85462809d
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 13:56:31 2024 +0100

    Update zammad-install.sh

commit 887c70c35a
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 13:47:11 2024 +0100

    Update zammad-install.sh

commit d87f3f777b
Author: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Date:   Wed Dec 18 13:05:49 2024 +0100

    Push Zammad and Apache Guacamole

commit ef3bb43405
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 12:30:24 2024 +0100

    fix paths to tmp

commit b6104103cb
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:21:29 2024 +0100

    Update build.func

commit fbb1b7d88a
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:12:32 2024 +0100

    Update authentik.sh

commit daba45f93a
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:07:28 2024 +0100

    Add files via upload

commit a13c0617b2
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:07:02 2024 +0100

    Update authentik.sh

commit 934f989f10
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:03:12 2024 +0100

    Update authentik.sh

commit c1b2476a30
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Wed Dec 18 10:02:52 2024 +0100

    Add files via upload

commit b7e00c4885
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 13 11:42:19 2024 +0100

    dev

commit daf650be1f
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 13 11:40:40 2024 +0100

    test

commit 5a3dca218e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 14:41:59 2024 +0100

    Update alpine-vaultwarden-install.sh

commit b4c59c7044
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 09:44:54 2024 +0100

    Update nginxproxymanager.sh

commit 9ef229b90a
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 09:29:21 2024 +0100

    Update nginxproxymanager-install.sh

commit e6361570b3
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Tue Dec 10 09:23:56 2024 +0100

    Update keycloak.sh

commit f901cd55dd
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 13:16:27 2024 +0100

    Update build.func

commit 02a0d16bee
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 13:14:36 2024 +0100

    Update build.func

commit e30f96e038
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 11:26:35 2024 +0100

    switch *arr to arr

commit 90246d1537
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:38:14 2024 +0100

    add space option

commit 693ad497f6
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:35:19 2024 +0100

    update motd for OS_version/name

commit 107243d576
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:34:15 2024 +0100

    remove project in motd

commit e65593751c
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:32:15 2024 +0100

    noCancel

commit 7fc60c9039
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:23:24 2024 +0100

    switch nocancel

commit ef837ab8b9
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:21:25 2024 +0100

    Update build.func

commit 37b398a5c9
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:20:24 2024 +0100

    Update build.func

commit 6ea43228c4
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:16:10 2024 +0100

    Update build.func

commit 8d89c107f9
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:08:57 2024 +0100

    Update build.func

commit 6e90b44e7e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:08:47 2024 +0100

    Update build.func

commit 4c2965f850
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 10:06:34 2024 +0100

    Update build.func

commit 29209dbee6
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:57:47 2024 +0100

    Update build.func

commit 63be70cc25
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:50:49 2024 +0100

    Update build.func

commit 02ded1ee47
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:46:39 2024 +0100

    Update build.func

commit b42d5c6a57
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:41:04 2024 +0100

    Update build.func

commit 9e90ab1921
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:39:16 2024 +0100

    Update build.func

commit 03301f12d2
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:36:00 2024 +0100

    Update build.func

commit d10c404b60
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:24:57 2024 +0100

    Update create_lxc.sh

commit b72eb02fde
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:19:32 2024 +0100

    space for spinner

commit 542c4f703b
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:11:02 2024 +0100

    Update install.func

commit 0f914e5ad7
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 09:06:49 2024 +0100

    TAGS > var_tags

commit d270b5535d
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 08:59:15 2024 +0100

    fix space in spinner

commit ffca06575e
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Mon Dec 9 08:58:22 2024 +0100

    fix space in  spinner

commit d73c19f5cd
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sat Dec 7 22:10:22 2024 +0100

    Fix Ressource-Check for other languages

commit f107a60062
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Sat Dec 7 11:41:13 2024 +0100

    netbox HTTPS instead http

commit f6604e09d4
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:31:00 2024 +0100

    fix for dev branch

commit 8063b68434
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:28:44 2024 +0100

    Update install.func

commit c0ff715175
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:28:19 2024 +0100

    Update create_lxc.sh

commit ae614234df
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:26:57 2024 +0100

    prepare for develop branch

commit 0141f3fc86
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:24:05 2024 +0100

    Update build.func

commit 6d390bbd78
Author: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date:   Fri Dec 6 15:19:58 2024 +0100

    Full Update
2024-12-23 15:14:53 +00:00

326 lines
12 KiB
Bash

#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster)
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
function header_info {
cat <<"EOF"
____ _ __ ___
/ __ \(_) |/ /___ _ __
/ /_/ / / /|_/ / __ \| |/_/
/ ____/ / / / / /_/ /> <
__ __ /_/_ /_/_/ /_/\____/_/|_| __ ____ _____
/ / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ / __ \/ ___/
/ /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/ / / / /\__ \
/ __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_ / /_/ /___/ /
/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____//____/
EOF
}
clear
header_info
echo -e "Loading..."
GEN_MAC=$(echo '00 60 2f'$(od -An -N3 -t xC /dev/urandom) | sed -e 's/ /:/g' | tr '[:lower:]' '[:upper:]')
USEDID=$(pvesh get /cluster/resources --type vm --output-format yaml | egrep -i 'vmid' | awk '{print substr($2, 1, length($2)-0) }')
NEXTID=$(pvesh get /cluster/nextid)
STABLE=$(curl -s https://raw.githubusercontent.com/home-assistant/version/master/stable.json | grep "ova" | awk '{print substr($2, 2, length($2)-3) }')
BETA=$(curl -s https://raw.githubusercontent.com/home-assistant/version/master/beta.json | grep "ova" | awk '{print substr($2, 2, length($2)-3) }')
DEV=$(curl -s https://raw.githubusercontent.com/home-assistant/version/master/dev.json | grep "ova" | awk '{print substr($2, 2, length($2)-3) }')
YW=$(echo "\033[33m")
BL=$(echo "\033[36m")
HA=$(echo "\033[1;34m")
RD=$(echo "\033[01;31m")
BGN=$(echo "\033[4;92m")
GN=$(echo "\033[1;92m")
DGN=$(echo "\033[32m")
CL=$(echo "\033[m")
BFR="\\r\\033[K"
HOLD="-"
CM="${GN}${CL}"
CROSS="${RD}${CL}"
set -o errexit
set -o errtrace
set -o nounset
set -o pipefail
shopt -s expand_aliases
alias die='EXIT=$? LINE=$LINENO error_exit'
trap die ERR
trap cleanup EXIT
function error_exit() {
trap - ERR
local reason="Unknown failure occurred."
local msg="${1:-$reason}"
local flag="${RD}‼ ERROR ${CL}$EXIT@$LINE"
echo -e "$flag $msg" 1>&2
[ ! -z ${VMID-} ] && cleanup_vmid
exit $EXIT
}
function cleanup_vmid() {
if $(qm status $VMID &>/dev/null); then
if [ "$(qm status $VMID | awk '{print $2}')" == "running" ]; then
qm stop $VMID
fi
qm destroy $VMID
fi
}
function cleanup() {
popd >/dev/null
rm -rf $TEMP_DIR
}
TEMP_DIR=$(mktemp -d)
pushd $TEMP_DIR >/dev/null
if ! command -v whiptail &> /dev/null; then
echo "Installing whiptail..."
apt-get update &>/dev/null
apt-get install -y whiptail &>/dev/null
fi
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "PiMox HAOS VM" --yesno "This will create a New PiMox HAOS VM. Proceed?" 10 58); then
echo "User selected Yes"
else
clear
echo -e "⚠ User exited script \n"
exit
fi
function ARCH_CHECK() {
ARCH=$(dpkg --print-architecture)
if [[ "$ARCH" == "amd64" ]]; then
echo -e "\n ❌ This script only works with PiMox! \n"
echo -e "Exiting..."
sleep 2
exit
fi
}
function msg_info() {
local msg="$1"
echo -ne " ${HOLD} ${YW}${msg}..."
}
function msg_ok() {
local msg="$1"
echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
}
function msg_error() {
local msg="$1"
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
}
function default_settings() {
echo -e "${DGN}Using HAOS Version: ${BGN}${STABLE}${CL}"
BRANCH=${STABLE}
echo -e "${DGN}Using Virtual Machine ID: ${BGN}$NEXTID${CL}"
VMID=$NEXTID
echo -e "${DGN}Using Hostname: ${BGN}haos${STABLE}${CL}"
HN=haos${STABLE}
echo -e "${DGN}Allocated Cores: ${BGN}2${CL}"
CORE_COUNT="2"
echo -e "${DGN}Allocated RAM: ${BGN}4096${CL}"
RAM_SIZE="4096"
echo -e "${DGN}Using Bridge: ${BGN}vmbr0${CL}"
BRG="vmbr0"
echo -e "${DGN}Using MAC Address: ${BGN}$GEN_MAC${CL}"
MAC=$GEN_MAC
echo -e "${DGN}Using VLAN: ${BGN}Default${CL}"
VLAN=""
echo -e "${DGN}Using Interface MTU Size: ${BGN}Default${CL}"
MTU=""
echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}"
START_VM="yes"
echo -e "${BL}Creating a HAOS VM using the above default settings${CL}"
}
function advanced_settings() {
BRANCH=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "HAOS VERSION" --radiolist "Choose Version" --cancel-button Exit-Script 10 58 3 \
"$STABLE" "Stable" ON \
"$BETA" "Beta" OFF \
"$DEV" "Dev" OFF \
3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then echo -e "${DGN}Using HAOS Version: ${BGN}$BRANCH${CL}"; fi
VMID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Virtual Machine ID" 8 58 $NEXTID --title "VIRTUAL MACHINE ID" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ -z $VMID ]; then
VMID="$NEXTID"
echo -e "${DGN}Virtual Machine: ${BGN}$VMID${CL}"
else
if echo "$USEDID" | egrep -q "$VMID"; then
echo -e "\n🚨 ${RD}ID $VMID is already in use${CL} \n"
echo -e "Exiting Script \n"
sleep 2
exit
else
if [ $exitstatus = 0 ]; then echo -e "${DGN}Virtual Machine ID: ${BGN}$VMID${CL}"; fi
fi
fi
VM_NAME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Hostname" 8 58 haos${BRANCH} --title "HOSTNAME" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ -z $VM_NAME ]; then
HN="haos${BRANCH}"
echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}"
else
if [ $exitstatus = 0 ]; then
HN=$(echo ${VM_NAME,,} | tr -d ' ')
echo -e "${DGN}Using Hostname: ${BGN}$HN${CL}"
fi
fi
CORE_COUNT=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate CPU Cores" 8 58 2 --title "CORE COUNT" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ -z $CORE_COUNT ]; then
CORE_COUNT="2"
echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}"
else
if [ $exitstatus = 0 ]; then echo -e "${DGN}Allocated Cores: ${BGN}$CORE_COUNT${CL}"; fi
fi
RAM_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Allocate RAM in MiB" 8 58 4096 --title "RAM" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ -z $RAM_SIZE ]; then
RAM_SIZE="4096"
echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}"
else
if [ $exitstatus = 0 ]; then echo -e "${DGN}Allocated RAM: ${BGN}$RAM_SIZE${CL}"; fi
fi
BRG=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Bridge" 8 58 vmbr0 --title "BRIDGE" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ -z $BRG ]; then
BRG="vmbr0"
echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}"
else
if [ $exitstatus = 0 ]; then echo -e "${DGN}Using Bridge: ${BGN}$BRG${CL}"; fi
fi
MAC1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a MAC Address" 8 58 $GEN_MAC --title "MAC ADDRESS" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ -z $MAC1 ]; then
MAC="$GEN_MAC"
echo -e "${DGN}Using MAC Address: ${BGN}$MAC${CL}"
else
if [ $exitstatus = 0 ]; then
MAC="$MAC1"
echo -e "${DGN}Using MAC Address: ${BGN}$MAC1${CL}"
fi
fi
VLAN1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set a Vlan(leave blank for default)" 8 58 --title "VLAN" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
if [ -z $VLAN1 ]; then
VLAN1="Default" VLAN=""
echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}"
else
VLAN=",tag=$VLAN1"
echo -e "${DGN}Using Vlan: ${BGN}$VLAN1${CL}"
fi
fi
MTU1=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Interface MTU Size (leave blank for default)" 8 58 --title "MTU SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
if [ -z $MTU1 ]; then
MTU1="Default" MTU=""
echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}"
else
MTU=",mtu=$MTU1"
echo -e "${DGN}Using Interface MTU Size: ${BGN}$MTU1${CL}"
fi
fi
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "START VIRTUAL MACHINE" --yesno "Start VM when completed?" 10 58); then
echo -e "${DGN}Start VM when completed: ${BGN}yes${CL}"
START_VM="yes"
else
echo -e "${DGN}Start VM when completed: ${BGN}no${CL}"
START_VM="no"
fi
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create HAOS ${BRANCH} VM?" --no-button Do-Over 10 58); then
echo -e "${RD}Creating a HAOS VM using the above advanced settings${CL}"
else
clear
header_info
echo -e "${RD}Using Advanced Settings${CL}"
advanced_settings
fi
}
function START_SCRIPT() {
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then
clear
header_info
echo -e "${BL}Using Default Settings${CL}"
default_settings
else
clear
header_info
echo -e "${RD}Using Advanced Settings${CL}"
advanced_settings
fi
}
ARCH_CHECK
START_SCRIPT
while read -r line; do
TAG=$(echo $line | awk '{print $1}')
TYPE=$(echo $line | awk '{printf "%-10s", $2}')
FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
ITEM=" Type: $TYPE Free: $FREE "
OFFSET=2
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
fi
STORAGE_MENU+=("$TAG" "$ITEM" "OFF")
done < <(pvesm status -content images | awk 'NR>1')
if [ $((${#STORAGE_MENU[@]} / 3)) -eq 0 ]; then
echo -e "'Disk image' needs to be selected for at least one storage location."
die "Unable to detect valid storage location."
elif [ $((${#STORAGE_MENU[@]} / 3)) -eq 1 ]; then
STORAGE=${STORAGE_MENU[0]}
else
while [ -z "${STORAGE:+x}" ]; do
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
"Which storage pool you would like to use for the HAOS VM?\n\n" \
16 $(($MSG_MAX_LENGTH + 23)) 6 \
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
done
fi
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
msg_ok "Virtual Machine ID is ${CL}${BL}$VMID${CL}."
msg_info "Getting URL for Home Assistant ${BRANCH} Disk Image"
URL=https://github.com/home-assistant/operating-system/releases/download/${BRANCH}/haos_generic-aarch64-${BRANCH}.qcow2.xz
sleep 2
msg_ok "${CL}${BL}${URL}${CL}"
wget -q --show-progress $URL
echo -en "\e[1A\e[0K"
FILE=$(basename $URL)
msg_ok "Downloaded ${CL}${BL}haos_generic-aarch64-${BRANCH}.qcow2.xz${CL}"
msg_info "Extracting Disk Image"
unxz $FILE
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
case $STORAGE_TYPE in
nfs | dir)
DISK_EXT=".qcow2"
DISK_REF="$VMID/"
DISK_IMPORT="-format qcow2"
;;
esac
for i in {0,1}; do
disk="DISK$i"
eval DISK${i}=vm-${VMID}-disk-${i}${DISK_EXT:-}
eval DISK${i}_REF=${STORAGE}:${DISK_REF:-}${!disk}
done
msg_ok "Extracted Disk Image"
msg_info "Creating HAOS VM"
qm create $VMID -bios ovmf -cores $CORE_COUNT -memory $RAM_SIZE -name $HN \
-net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
pvesm alloc $STORAGE $VMID $DISK0 64M 1>&/dev/null
qm importdisk $VMID ${FILE%.*} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null
qm set $VMID \
-efidisk0 ${DISK0_REF},efitype=4m,size=64M \
-scsi0 ${DISK1_REF},size=32G >/dev/null
qm set $VMID \
-boot order=scsi0 \
-description "<div align='center'><a href='https://Helper-Scripts.com'><img src='https://raw.githubusercontent.com/community-scripts/ProxmoxVE/develop/misc/images/logo-81x112.png'/></a>
# Home Assistant OS
<a href='https://ko-fi.com/D1D7EP4GF'><img src='https://img.shields.io/badge/&#x2615;-Buy me a coffee-blue' /></a>
</div>" >/dev/null
msg_ok "Created HAOS VM ${CL}${BL}(${HN})"
if [ "$START_VM" == "yes" ]; then
msg_info "Starting Home Assistant OS VM"
qm start $VMID
msg_ok "Started Home Assistant OS VM"
fi
msg_ok "Completed Successfully!\n"