summary refs log tree commit diff
path: root/nixos/maintainers/scripts/azure-new/boot-vm.sh
blob: 1ce3a5f9db1e77c089972246b9298180a7a1b1dd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env bash
set -euo pipefail
set -x

image="${1}"
location="westus2"
group="nixos-test-vm"
vm_size="Standard_D2s_v3";  os_size=42;

# ensure group
az group create --location "westus2" --name "${group}"
group_id="$(az group show --name "${group}" -o tsv --query "[id]")"

# (optional) identity
if ! az identity show -n "${group}-identity" -g "${group}" &>/dev/stderr; then
  az identity create --name "${group}-identity" --resource-group "${group}"
fi

# (optional) role assignment, to the resource group, bad but not really great alternatives
identity_id="$(az identity show --name "${group}-identity" --resource-group "${group}" -o tsv --query "[id]")"
principal_id="$(az identity show --name "${group}-identity" --resource-group "${group}" -o tsv --query "[principalId]")"
until az role assignment create --assignee "${principal_id}" --role "Owner" --scope "${group_id}"; do sleep 1; done

# boot vm
az vm create \
  --name "${group}-vm" \
  --resource-group "${group}" \
  --assign-identity "${identity_id}" \
  --size "${vm_size}" \
  --os-disk-size-gb "${os_size}" \
  --image "${image}" \
  --admin-username "${USER}" \
  --location "westus2" \
  --storage-sku "Premium_LRS" \
  --ssh-key-values "$(ssh-add -L)"