kvm/bolt_vm_automation/tasks/install_alpine.sh
2025-03-26 18:03:51 -04:00

57 lines
2.1 KiB
Bash

#!/bin/bash
# Input Variables
VM_NAME="${PT_vm_name}"
DISK_PATH="${PT_disk_path}"
STAGING_IP="${PT_staging_ip}"
# Wait for VM to be accessible via SSH
while ! ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@${STAGING_IP} "echo 'VM is accessible'"; do
sleep 5
done
# Create autoinstall answer file directly on VM
ssh -o StrictHostKeyChecking=no root@${STAGING_IP} "cat > /tmp/alpine-answers << 'EOF'
KEYMAPOPTS=\"us us\"
HOSTNAMEOPTS=\"-n vm-template-staging\"
INTERFACESOPTS=\"auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 100.40.223.190
netmask 255.255.255.0
gateway 100.40.223.1
\"
DNSOPTS=\"-n 8.8.8.8 8.8.4.4\"
TIMEZONEOPTS=\"-z UTC\"
PROXYOPTS=\"none\"
APKREPOSOPTS=\"-1\"
USEROPTS=\"-a -u moeny\"
USERSSHKEY=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRMJNdI/n/7xYN65zHFN8hlRSDg5OPJ12AwOsUyP8OmKCQTapoVQ/suvjaUTCtt8o28QNIQm1vAD03hFNzVJn6F6FJu9vUbR+YqlmzmzGJXB6sWWTEnc9/GsVvLoculuzFYfa2qU9xFbuUTtqFRu6qor82TPAhy/yVWzIvRxlfuxKLpdU9paKiV+WtCkSpVoBgIH6soBE1swMX4ILIOGeFTrmCdBac4K1Bs0OarKtShR6PHdNiqPlwpCeQQDZD8ops69yBMc0t6poFZC9FYSj7arJEWvZN9YtUr+PJiYZQc+gIG4enPW1Zf4FEkXXvH/t6RaYMq9w/P5lIUNOVe169\"
ROOTSSHKEY=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRMJNdI/n/7xYN65zHFN8hlRSDg5OPJ12AwOsUyP8OmKCQTapoVQ/suvjaUTCtt8o28QNIQm1vAD03hFNzVJn6F6FJu9vUbR+YqlmzmzGJXB6sWWTEnc9/GsVvLoculuzFYfa2qU9xFbuUTtqFRu6qor82TPAhy/yVWzIvRxlfuxKLpdU9paKiV+WtCkSpVoBgIH6soBE1swMX4ILIOGeFTrmCdBac4K1Bs0OarKtShR6PHdNiqPlwpCeQQDZD8ops69yBMc0t6poFZC9FYSj7arJEWvZN9YtUr+PJiYZQc+gIG4enPW1Zf4FEkXXvH/t6RaYMq9w/P5lIUNOVe169\"
SSHDOPTS=\"-c openssh\"
NTPOPTS=\"-c chrony\"
DISKOPTS=\"-m sys /dev/vda\"
EOF"
# Run installation commands over SSH
ssh -o StrictHostKeyChecking=no root@${STAGING_IP} "echo 'y' | setup-alpine -e -f /tmp/alpine-answers"
# Wait for installation to complete
sleep 45
# Reboot via SSH
ssh -o StrictHostKeyChecking=no root@${STAGING_IP} "reboot"
# Wait for VM to come back up
sleep 30
# Verify installation by trying to SSH
if ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 root@${STAGING_IP} "echo 'VM is running'"; then
echo "Alpine installation completed successfully"
exit 0
else
echo "Failed to install Alpine"
exit 1
fi