Compare commits
1 Commits
master
...
patch-slow
Author | SHA1 | Date | |
---|---|---|---|
|
50c639216a |
@ -3,7 +3,7 @@
|
|||||||
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
|
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
|
||||||
|
|
||||||
```
|
```
|
||||||
bash -c "$(wget -qLO - https://git.sfs.ddnss.org/Erik/proxmox_hassos_install/raw/branch/master/install.sh)"
|
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.
|
||||||
|
39
install.sh
39
install.sh
@ -81,21 +81,24 @@ info "Container ID is $VMID."
|
|||||||
|
|
||||||
# Get latest Home Assistant disk image archive URL
|
# Get latest Home Assistant disk image archive URL
|
||||||
msg "Getting URL for latest Home Assistant disk image..."
|
msg "Getting URL for latest Home Assistant disk image..."
|
||||||
RELEASE_TYPE=vmdk
|
RELEASE_EXT=vmdk.gz
|
||||||
URL=$(cat<<EOF | python3
|
URL=$(cat<<EOF | python3
|
||||||
import requests
|
import requests
|
||||||
url = "https://api.github.com/repos/home-assistant/operating-system/releases"
|
url = 'https://api.github.com/repos/home-assistant/operating-system/releases'
|
||||||
r = requests.get(url).json()
|
r = requests.get(url).json()
|
||||||
if "message" in r:
|
if 'message' in r:
|
||||||
exit()
|
exit()
|
||||||
for release in r:
|
for release in r:
|
||||||
if release["prerelease"]:
|
if release['prerelease']:
|
||||||
continue
|
continue
|
||||||
for asset in release["assets"]:
|
for asset in release['assets']:
|
||||||
if asset["name"].find("$RELEASE_TYPE") != -1:
|
if asset['name'].endswith('$RELEASE_EXT'):
|
||||||
image_url = asset["browser_download_url"]
|
global image_url
|
||||||
|
image_url = asset['browser_download_url']
|
||||||
|
break
|
||||||
|
if 'image_url' in globals():
|
||||||
print(image_url)
|
print(image_url)
|
||||||
exit()
|
break
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
if [ -z "$URL" ]; then
|
if [ -z "$URL" ]; then
|
||||||
@ -110,12 +113,7 @@ FILE=$(basename $URL)
|
|||||||
|
|
||||||
# Extract Home Assistant disk image
|
# Extract Home Assistant disk image
|
||||||
msg "Extracting disk image..."
|
msg "Extracting disk image..."
|
||||||
case $FILE in
|
gunzip -f $FILE
|
||||||
*"gz") gunzip -f $FILE;;
|
|
||||||
*"xz") xz -d $FILE;;
|
|
||||||
*"zip") unzip $FILE;;
|
|
||||||
*) die "Unable to handle file extension '${FILE##*.}'.";;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Create variables for container disk
|
# Create variables for container disk
|
||||||
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
|
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
|
||||||
@ -132,16 +130,15 @@ done
|
|||||||
|
|
||||||
# Create VM
|
# Create VM
|
||||||
msg "Creating VM..."
|
msg "Creating VM..."
|
||||||
VM_NAME=$(sed -e "s/\_//g" -e "s/.${RELEASE_TYPE}.*$//" <<< $FILE)
|
VM_NAME=$(sed -e "s/\_//g" -e "s/.${RELEASE_EXT}//" <<< $FILE)
|
||||||
qm create $VMID -agent 1 -bios ovmf -name $VM_NAME -net0 virtio,bridge=vmbr0 \
|
qm create $VMID -agent 1 -bios ovmf -name $VM_NAME -net0 virtio,bridge=vmbr0 \
|
||||||
-onboot 1 -ostype l26 -scsihw virtio-scsi-pci
|
-onboot 1 -ostype l26 -scsihw virtio-scsi-pci
|
||||||
pvesm alloc $STORAGE $VMID $DISK0 128 1>&/dev/null
|
EFI_SIZE=128K
|
||||||
qm importdisk $VMID ${FILE%.*} $STORAGE ${IMPORT_OPT:-} 1>&/dev/null
|
truncate -s $EFI_SIZE efi
|
||||||
qm set $VMID \
|
qm importdisk $VMID efi $STORAGE ${IMPORT_OPT:-} 1>&/dev/null
|
||||||
-efidisk0 ${DISK0_REF},size=128K \
|
qm importdisk $VMID ${FILE%".gz"} $STORAGE ${IMPORT_OPT:-} 1>&/dev/null
|
||||||
|
qm set $VMID -bootdisk sata0 -efidisk0 ${DISK0_REF},size=$EFI_SIZE \
|
||||||
-sata0 ${DISK1_REF},size=6G > /dev/null
|
-sata0 ${DISK1_REF},size=6G > /dev/null
|
||||||
qm set $VMID \
|
|
||||||
-boot order=sata0 > /dev/null
|
|
||||||
|
|
||||||
# Add serial port and enable console output
|
# Add serial port and enable console output
|
||||||
set +o errtrace
|
set +o errtrace
|
||||||
|
Loading…
Reference in New Issue
Block a user