61 lines
2.3 KiB
Bash
61 lines
2.3 KiB
Bash
#!/bin/bash
|
|
# Task to Install Alpine on a VM (alpine::install_alpine)
|
|
|
|
# Input Variables
|
|
VM_NAME="${PT_vm_name}"
|
|
DISK_PATH="${PT_disk_path}"
|
|
STAGING_IP="${PT_staging_ip}"
|
|
GATEWAY_IP="${PT_gateway_ip}"
|
|
USERNAME="${PT_username:-moeny}"
|
|
|
|
# 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 ${STAGING_IP}
|
|
netmask 255.255.255.0
|
|
gateway ${GATEWAY_IP}
|
|
\"
|
|
DNSOPTS=\"-n 8.8.8.8 8.8.4.4\"
|
|
TIMEZONEOPTS=\"-z UTC\"
|
|
PROXYOPTS=\"none\"
|
|
APKREPOSOPTS=\"-1\"
|
|
USEROPTS=\"-a -u ${USERNAME}\"
|
|
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 65
|
|
|
|
# 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 '{"status": "success", "message": "Alpine installation completed successfully"}'
|
|
exit 0
|
|
else
|
|
echo '{"status": "failure", "message": "Failed to install Alpine"}'
|
|
exit 1
|
|
fi
|