- Create a NIC with
start_ip
- Start VM with that NIC
- While VM is in
Creating
state, change private (primary) IP toalternative_ip
export rg_name=switchip
export vm_name=somevm
export vnet_name=switchipvnet
export subnet_name=subnet
export location=westeurope
export start_ip=10.0.0.10
export alternative_ip=10.0.0.200
az group create --name switchip --location westeurope
az network vnet create \
--resource-group "${rg_name}" \
--name "${vnet_name}" \
--subnet-name "${subnet_name}" \
--address-prefix 10.0.0.0/16 \
--subnet-prefix 10.0.0.0/24
export nic_id_primary=$(az network nic create \
--resource-group "${rg_name}" \
--name "nic_${vm_name}" \
--vnet-name "${vnet_name}" --subnet "${subnet_name}" \
--location "${location}" \
--private-ip-address "${start_ip}" \
| jq -r ".NewNIC.id")
az vm create \
--resource-group "${rg_name}" --name "${vm_name}" \
--location "${location}" \
--image SLES --size Standard_DS1_v2 \
--admin-username chgeuer --ssh-key-value "$(cat /mnt/c/Users/chgeuer/.ssh/dcos.openssh.public)" \
--no-wait \
--nics "${nic_id_primary}"
az vm show \
--resource-group "${rg_name}" --name "${vm_name}" \
| jq -r ".provisioningState"
Resulted in Creating
az network nic update \
--ids "${nic_id_primary}" \
--set ipConfigurations[0].privateIpAddress="${alternative_ip}"
#
# Check if original IP id available again
#
az network vnet check-ip-address \
--resource-group "${rg_name}" \
--name "${vnet_name}" \
--ip-address "${start_ip}"
az vm show \
--resource-group "${rg_name}" --name "${vm_name}" \
| jq -r ".provisioningState"
Resulted in Creating
az network nic show --ids "$(az vm show \
--resource-group "${rg_name}" --name "${vm_name}" \
| jq -r ".networkProfile.networkInterfaces[].id")" \
| jq -r ".ipConfigurations[].privateIpAddress"
Resulted in 10.0.0.31