29 lines
830 B
Bash
Executable file
29 lines
830 B
Bash
Executable file
#!/bin/sh
|
|
# Full first-time provisioning: set up networking, create VMs, run the
|
|
# complete playbook, then snapshot as "provisioned" for fast iteration.
|
|
set -eu
|
|
. "$(dirname "$0")/env.sh"
|
|
|
|
echo "==> Setting up bridge network"
|
|
mkdir -p .local/qemu
|
|
sudo --preserve-env=QEMU_VM "$SCRIPT_DIR/vm/setup-network.sh"
|
|
|
|
echo "==> Creating VMs"
|
|
"$SCRIPT_DIR/vm/create.sh"
|
|
|
|
echo "==> Starting VMs"
|
|
"$SCRIPT_DIR/vm/start.sh"
|
|
|
|
echo "==> Running full playbook"
|
|
ansible-playbook -i "$INVENTORY" "$PLAYBOOK" --vault-password-file "$VAULT_PASS"
|
|
|
|
echo "==> Setting up local WireGuard"
|
|
sudo "$SCRIPT_DIR/local/setup-wireguard.sh"
|
|
|
|
echo "==> Setting up local /etc/hosts"
|
|
sudo "$SCRIPT_DIR/local/setup-hosts.sh"
|
|
|
|
echo "==> Snapshotting 'provisioned'"
|
|
"$SCRIPT_DIR/vm/snapshot.sh" provisioned
|
|
|
|
echo "==> Done. Iterate with: scripts/deploy.sh <service>"
|