tasks: # Creation, deletion and mgmt of VM create-vm: desc: Create a new azure VM local: > az vm create -n "{vm_name}" -g "{ressource_group}" --image UbuntuLTS --admin-username {vm_admin} --ssh-key-value {ssh_pubkey} --data-disk-sizes-gb {vm_disk_size} --public-ip-address "" --subnet "{subnet}" once: true delete-vm-only: desc: Delete azure VM local: az vm delete -n "{vm_name}" -g "{ressource_group}" -y once: true show-disk: desc: Read disk id local: >- az vm show -g "{ressource_group}" --query "{query}" -n "{vm_name}" once: true delete-disk: desc: Delete azure disk local: az disk delete -n "{disk_name}" -g "{ressource_group}" -y once: true delete-vm: desc: Delete both VM and attached disk multi: - task: az-show-disk export: os_disk env: query: "storageProfile.osDisk.name" - task: az-show-disk export: data_disk env: query: "storageProfile.dataDisks[0].name" - task: az-delete-vm-only - task: az-delete-disk env: disk_name: "{data_disk}" - task: az-delete-disk env: disk_name: "{os_disk}" show-ip: desc: Query azure vm by name for ip local: > az vm list-ip-addresses --query "[?virtualMachine.name=='{vm_name}'] .virtualMachine.network.privateIpAddresses[0]" once: true vm-info: desc: Query azure vm by name for info local: az vm list --query "[?name=='{vm_name}']" once: true vm-search: desc: Search VM by name local: az vm list --query "[?contains(name, '{vm_name}')].name" once: true fix-hosts: desc: "See: https://github.com/Microsoft/WSL/issues/491" run: | if grep -q $(hostname) /etc/hosts then true else sudo sed -i "s/127.0.0.1 localhost/127.0.0.1 localhost $(hostname)/g" /etc/hosts fi