Address CodeRabbit review feedback
- Remove unused CLOUDINIT_PASSWORD variable - Separate local declaration from assignment in get_image_url() - Add retry loop for apt-get install (matches apt-get update pattern) - Fix timeout message to match actual loop duration (~5-6 min)
This commit is contained in:
@@ -364,7 +364,8 @@ function set_ssh_keys() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function get_image_url() {
|
function get_image_url() {
|
||||||
local arch=$(dpkg --print-architecture)
|
local arch
|
||||||
|
arch=$(dpkg --print-architecture)
|
||||||
case $OS_TYPE in
|
case $OS_TYPE in
|
||||||
debian)
|
debian)
|
||||||
# Always use Cloud-Init variant for UniFi OS
|
# Always use Cloud-Init variant for UniFi OS
|
||||||
@@ -819,7 +820,17 @@ for attempt in {1..3}; do
|
|||||||
echo "[$(date)] apt-get update failed (attempt $attempt/3), retrying in 10s..."
|
echo "[$(date)] apt-get update failed (attempt $attempt/3), retrying in 10s..."
|
||||||
sleep 10
|
sleep 10
|
||||||
done
|
done
|
||||||
apt-get install -y -qq qemu-guest-agent podman uidmap slirp4netns curl wget
|
for attempt in {1..3}; do
|
||||||
|
if apt-get install -y -qq qemu-guest-agent podman uidmap slirp4netns curl wget; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [ "$attempt" -eq 3 ]; then
|
||||||
|
echo "[$(date)] apt-get install failed after 3 attempts"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "[$(date)] apt-get install failed (attempt $attempt/3), retrying in 10s..."
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
systemctl enable --now qemu-guest-agent
|
systemctl enable --now qemu-guest-agent
|
||||||
echo "[$(date)] Packages installed"
|
echo "[$(date)] Packages installed"
|
||||||
|
|
||||||
@@ -910,7 +921,6 @@ msg_info "Configuring Cloud-Init"
|
|||||||
setup_cloud_init "$VMID" "$STORAGE" "$HN" "yes" >/dev/null 2>&1
|
setup_cloud_init "$VMID" "$STORAGE" "$HN" "yes" >/dev/null 2>&1
|
||||||
# Override with user-set password
|
# Override with user-set password
|
||||||
qm set "$VMID" --cipassword "$USER_PASSWORD" >/dev/null
|
qm set "$VMID" --cipassword "$USER_PASSWORD" >/dev/null
|
||||||
CLOUDINIT_PASSWORD="$USER_PASSWORD"
|
|
||||||
# Add SSH keys if provided
|
# Add SSH keys if provided
|
||||||
if [ -n "${SSH_KEYS_FILE:-}" ] && [ -f "${SSH_KEYS_FILE:-}" ]; then
|
if [ -n "${SSH_KEYS_FILE:-}" ] && [ -f "${SSH_KEYS_FILE:-}" ]; then
|
||||||
qm set "$VMID" --sshkeys "$SSH_KEYS_FILE" >/dev/null
|
qm set "$VMID" --sshkeys "$SSH_KEYS_FILE" >/dev/null
|
||||||
@@ -960,7 +970,7 @@ if [ "$START_VM" == "yes" ]; then
|
|||||||
msg_ok "Started UniFi OS VM"
|
msg_ok "Started UniFi OS VM"
|
||||||
|
|
||||||
# Wait for guest agent (installed by first-boot service)
|
# Wait for guest agent (installed by first-boot service)
|
||||||
msg_info "Waiting for guest agent (first-boot installs packages, ~3-5 min)"
|
msg_info "Waiting for guest agent (first-boot installs packages, ~5-6 min)"
|
||||||
VM_IP=""
|
VM_IP=""
|
||||||
for i in {1..180}; do
|
for i in {1..180}; do
|
||||||
VM_IP=$(qm guest cmd $VMID network-get-interfaces 2>/dev/null | jq -r '.[] | select(.name != "lo") | .["ip-addresses"][]? | select(.["ip-address-type"] == "ipv4") | .["ip-address"]' 2>/dev/null | grep -v "^127\." | head -1 || echo "")
|
VM_IP=$(qm guest cmd $VMID network-get-interfaces 2>/dev/null | jq -r '.[] | select(.name != "lo") | .["ip-addresses"][]? | select(.["ip-address-type"] == "ipv4") | .["ip-address"]' 2>/dev/null | grep -v "^127\." | head -1 || echo "")
|
||||||
@@ -968,7 +978,7 @@ if [ "$START_VM" == "yes" ]; then
|
|||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
# Show elapsed time so it doesn't look stuck
|
# Show elapsed time so it doesn't look stuck
|
||||||
printf "\r${TAB}${YW}${HOLD}Waiting for guest agent (first-boot installs packages, ~3-5 min) [%ds]${HOLD}" "$((i * 2))"
|
printf "\r${TAB}${YW}${HOLD}Waiting for guest agent (first-boot installs packages, ~5-6 min) [%ds]${HOLD}" "$((i * 2))"
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user