provision.sh
1 #!/usr/bin/env bash 2 3 set -euo pipefail 4 5 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 6 PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" 7 SSH_PRIVKEY="$PROJECT_ROOT/cloud-init/keys/id_ed25519" 8 BOOTSTRAP_LOCAL="$SCRIPT_DIR/bootstrap.sh" 9 BOOTSTRAP_REMOTE="/tmp/bootstrap.sh" 10 11 # Get IP using enter.sh logic 12 VM_IP_ADDR="$("$SCRIPT_DIR/enter.sh" --print-ip 2>/dev/null || true)" 13 14 if [[ -z "$VM_IP_ADDR" ]]; then 15 # Fallback to native lookup 16 VM_IP_ADDR="$(sudo virsh net-dhcp-leases default | 17 awk '/aosp-builder-01/ {sub(/\/.*/, "", $5); print $5}')" 18 fi 19 20 if [[ -z "$VM_IP_ADDR" ]]; then 21 echo "Could not determine VM IP address. Is the VM running?" 22 exit 1 23 fi 24 25 echo ":: Uploading bootstrap.sh" 26 scp -i "$SSH_PRIVKEY" "$BOOTSTRAP_LOCAL" "$VM_USER@$VM_IP_ADDR:$BOOTSTRAP_REMOTE" 27 28 echo ":: Running bootstrap.sh" 29 "$SCRIPT_DIR/enter.sh" bash "$BOOTSTRAP_REMOTE"