Add menu to select storage and update README

This commit is contained in:
whiskerz007 2020-03-20 15:00:25 +01:00
parent bd6cd3c932
commit f05378b509
No known key found for this signature in database
GPG Key ID: A7EEAB6E1F1A6805
2 changed files with 30 additions and 15 deletions

View File

@ -1,17 +1,13 @@
# New Proxmox VM with HassOS # New Proxmox VM with Home Assistant
This script will create a new Proxmox VM with the latest version of HassOS. To create a new VM in the `local-lvm` storage, run the following in a SSH session or the console from Proxmox interface This script will create a new Proxmox VM with the latest version of Home Assistant. To create a new VM, run the following in a SSH session or the console from Proxmox interface
``` ```
wget -qO - https://raw.githubusercontent.com/whiskerz007/proxmox_hassos_install/master/install.sh | bash -s local-lvm bash -c "$(wget -qLO - https://github.com/whiskerz007/proxmox_hassos_install/raw/master/install.sh)"
``` ```
After script completes, click on the new VM (_the script will tell you the ID_), click on the `Hardware` tab for the VM and change the `Memory` and `Processors` settings to what you desire. The `Hard Disk` can be expanded by clicking on it, then click on the `Resize disk` button above (_Note: additional steps must be taken for storage to take effect in the VM after the first boot_). The network MAC address can be changed by selecting `Network Device` and clicking `Edit` above. Once all changes have been made, click `Start` above. After script completes, click on the new VM (_the script will tell you the ID_), click on the `Hardware` tab for the VM and change the `Memory` and `Processors` settings to what you desire. The `Hard Disk` can be expanded by clicking on it, then click on the `Resize disk` button above (_Note: additional steps must be taken for storage to take effect in the VM after the first boot_). The network MAC address can be changed by selecting `Network Device` and clicking `Edit` above. Once all changes have been made, click `Start` above.
## Specify Storage ID
To specify the storage ID the new VM will be placed, replace `local-lvm` in the oneline command with desired storage ID.
## Root Prompt ## Root Prompt
To get to the root prompt To get to the root prompt
@ -19,8 +15,8 @@ To get to the root prompt
- When the messages slow down press the `Enter` key a couple of times until you see the following - When the messages slow down press the `Enter` key a couple of times until you see the following
``` ```
Welcome to HassOS Welcome to Home Assistant
hassio login: homeassistant login:
``` ```
- Login using `root`, no password is requested - Login using `root`, no password is requested
- When you see the `hassio > ` prompt, type `login` - When you see the `hassio > ` prompt, type `login`

View File

@ -35,12 +35,30 @@ TMP=`mktemp -d`
pushd $TMP >/dev/null pushd $TMP >/dev/null
# Select storage location # Select storage location
STORAGE=${1:-local-lvm} while read -r line; do
pvesm list $STORAGE >& /dev/null || TAG=$(echo $line | awk '{print $1}')
die "'$STORAGE' is not a valid storage ID." TYPE=$(echo $line | awk '{printf "%-10s", $2}')
pvesm status -content images -storage $STORAGE >&/dev/null || FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
die "'$STORAGE' does not allow 'Disk image' to be stored." ITEM=" Type: $TYPE Free: $FREE "
STORAGE_TYPE=`pvesm status -storage $STORAGE | awk 'NR>1 {print $2}'` 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
warn "'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 --title "Storage Pools" --radiolist \
"Which storage pool you would like to use for the container?\n\n" \
16 $(($MSG_MAX_LENGTH + 23)) 6 \
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
done
fi
info "Using '$STORAGE' for storage location." info "Using '$STORAGE' for storage location."
# Get the next guest VM/LXC ID # Get the next guest VM/LXC ID
@ -76,6 +94,7 @@ msg "Extracting disk image..."
gunzip -f $FILE gunzip -f $FILE
# Create variables for container disk # Create variables for container disk
STORAGE_TYPE=`pvesm status -storage $STORAGE | awk 'NR>1 {print $2}'`
if [ "$STORAGE_TYPE" = "dir" ]; then if [ "$STORAGE_TYPE" = "dir" ]; then
DISK_EXT=".qcow2" DISK_EXT=".qcow2"
DISK_REF="$VMID/" DISK_REF="$VMID/"