Update unifi-os-vm.sh
This commit is contained in:
parent
c1aa45e3d5
commit
b30dcbb599
@ -286,7 +286,7 @@ function default_settings() {
|
|||||||
FORMAT=""
|
FORMAT=""
|
||||||
MACHINE=" -machine q35"
|
MACHINE=" -machine q35"
|
||||||
DISK_CACHE=""
|
DISK_CACHE=""
|
||||||
DISK_SIZE="30G"
|
DISK_SIZE="32G"
|
||||||
HN="unifi-server-os"
|
HN="unifi-server-os"
|
||||||
CPU_TYPE=" -cpu host"
|
CPU_TYPE=" -cpu host"
|
||||||
CORE_COUNT="2"
|
CORE_COUNT="2"
|
||||||
@ -620,7 +620,7 @@ msg_info "Preparing ${OS_DISPLAY} Qcow2 Disk Image"
|
|||||||
# Set DNS for libguestfs appliance environment
|
# Set DNS for libguestfs appliance environment
|
||||||
export LIBGUESTFS_BACKEND_SETTINGS=dns=8.8.8.8,1.1.1.1
|
export LIBGUESTFS_BACKEND_SETTINGS=dns=8.8.8.8,1.1.1.1
|
||||||
|
|
||||||
# Create first-boot installation script
|
# Create first-boot installation script (suppress stderr warnings)
|
||||||
virt-customize -q -a "${FILE}" --run-command "cat > /root/install-unifi.sh << 'INSTALLEOF'
|
virt-customize -q -a "${FILE}" --run-command "cat > /root/install-unifi.sh << 'INSTALLEOF'
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Log output to file
|
# Log output to file
|
||||||
@ -659,15 +659,18 @@ apt-get install -y qemu-guest-agent curl ca-certificates lsb-release podman 2>/d
|
|||||||
echo \"[\$(date)] Downloading UniFi OS Server ${UOS_VERSION}\"
|
echo \"[\$(date)] Downloading UniFi OS Server ${UOS_VERSION}\"
|
||||||
curl -fsSL '${UOS_URL}' -o /root/${UOS_INSTALLER}
|
curl -fsSL '${UOS_URL}' -o /root/${UOS_INSTALLER}
|
||||||
chmod +x /root/${UOS_INSTALLER}
|
chmod +x /root/${UOS_INSTALLER}
|
||||||
echo \"[\$(date)] UniFi OS installer ready at /root/${UOS_INSTALLER}\"
|
|
||||||
echo \"[\$(date)] Run the installer manually: /root/${UOS_INSTALLER}\"
|
# Run UniFi OS installer automatically with yes confirmation
|
||||||
|
echo \"[\$(date)] Running UniFi OS installer automatically...\"
|
||||||
|
yes y | /root/${UOS_INSTALLER} 2>&1 || true
|
||||||
|
echo \"[\$(date)] UniFi OS installation completed\"
|
||||||
|
|
||||||
# Self-destruct this installation script
|
# Self-destruct this installation script
|
||||||
rm -f /root/install-unifi.sh
|
rm -f /root/install-unifi.sh
|
||||||
INSTALLEOF
|
INSTALLEOF
|
||||||
chmod +x /root/install-unifi.sh"
|
chmod +x /root/install-unifi.sh" 2>/dev/null
|
||||||
|
|
||||||
# Set up systemd service for first boot
|
# Set up systemd service for first boot (suppress stderr warnings)
|
||||||
virt-customize -q -a "${FILE}" --run-command "cat > /etc/systemd/system/unifi-firstboot.service << 'SVCEOF'
|
virt-customize -q -a "${FILE}" --run-command "cat > /etc/systemd/system/unifi-firstboot.service << 'SVCEOF'
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=UniFi OS First Boot Setup
|
Description=UniFi OS First Boot Setup
|
||||||
@ -683,17 +686,31 @@ RemainAfterExit=yes
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
SVCEOF
|
SVCEOF
|
||||||
ln -s /etc/systemd/system/unifi-firstboot.service /etc/systemd/system/multi-user.target.wants/unifi-firstboot.service"
|
ln -s /etc/systemd/system/unifi-firstboot.service /etc/systemd/system/multi-user.target.wants/unifi-firstboot.service" 2>/dev/null
|
||||||
|
|
||||||
# Add auto-login if Cloud-Init is disabled
|
# Add auto-login if Cloud-Init is disabled (suppress stderr warnings)
|
||||||
if [ "$USE_CLOUD_INIT" != "yes" ]; then
|
if [ "$USE_CLOUD_INIT" != "yes" ]; then
|
||||||
virt-customize -q -a "${FILE}" \
|
virt-customize -q -a "${FILE}" \
|
||||||
--run-command 'mkdir -p /etc/systemd/system/getty@tty1.service.d' \
|
--run-command 'mkdir -p /etc/systemd/system/getty@tty1.service.d' \
|
||||||
--run-command "bash -c 'echo -e \"[Service]\nExecStart=\nExecStart=-/sbin/agetty --autologin root --noclear %I \\\$TERM\" > /etc/systemd/system/getty@tty1.service.d/override.conf'"
|
--run-command "bash -c 'echo -e \"[Service]\nExecStart=\nExecStart=-/sbin/agetty --autologin root --noclear %I \\\$TERM\" > /etc/systemd/system/getty@tty1.service.d/override.conf'" 2>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "UniFi OS Installer integrated (will run on first boot)"
|
msg_ok "UniFi OS Installer integrated (will run on first boot)"
|
||||||
|
|
||||||
|
# Expand root partition to use full disk space
|
||||||
|
msg_info "Expanding disk image to ${DISK_SIZE}"
|
||||||
|
qemu-img create -f qcow2 expanded.qcow2 ${DISK_SIZE} >/dev/null 2>&1
|
||||||
|
|
||||||
|
# Detect partition device (sda1 for Ubuntu, vda1 for Debian)
|
||||||
|
PARTITION_DEV=$(virt-filesystems --long -h --all -a "${FILE}" | grep -oP '/dev/\K(s|v)da1' | head -1)
|
||||||
|
if [ -z "$PARTITION_DEV" ]; then
|
||||||
|
PARTITION_DEV="sda1" # fallback
|
||||||
|
fi
|
||||||
|
|
||||||
|
virt-resize --quiet --expand /dev/${PARTITION_DEV} ${FILE} expanded.qcow2 >/dev/null 2>&1
|
||||||
|
mv expanded.qcow2 ${FILE}
|
||||||
|
msg_ok "Expanded disk image to ${DISK_SIZE}"
|
||||||
|
|
||||||
msg_info "Creating UniFi OS VM"
|
msg_info "Creating UniFi OS VM"
|
||||||
qm create "$VMID" -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf \
|
qm create "$VMID" -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf \
|
||||||
${CPU_TYPE} -cores "$CORE_COUNT" -memory "$RAM_SIZE" \
|
${CPU_TYPE} -cores "$CORE_COUNT" -memory "$RAM_SIZE" \
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user