Удаление виртуальной машины и ее ресурсов не работает из сценария оболочки (azcli), а работает вручную - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь удалить виртуальную машину и связанные с ней ресурсы в Azure, используя azcli из сценария оболочки. Мне удалось удалить компьютер, затем удалить его диски, а затем возникли проблемы с удалением сетевого сценария (NI C), IP-адреса Publi c компьютера и его сетевой группы безопасности (NSG) из сценария. Когда я запускаю команды azcli, которые удаляют NI C, publi c IP и NSG из cmd, вручную, одна за другой - он работает и удаляет их. Однако те же команды не работают при запуске внутри сценария оболочки.

Я прилагаю сценарий со всеми командами:

#!/bin/bash

AZURE_RESOURCE_GROUP="myRG"
VM_NAME="myVM"

echo "Gathering network interface connector information"
az vm nic list --vm-name "$VM_NAME" --resource-group $AZURE_RESOURCE_GROUP

echo $'\nStopping $VM_NAME virtual machine, it may take up to 90 seconds'
az vm deallocate -n "$VM_NAME" -g $AZURE_RESOURCE_GROUP --no-wait
sleep 90

echo "Deleting $VM_NAME virtual machine, it may take up to 3 minutes"
az vm delete -n "$VM_NAME" -g $AZURE_RESOURCE_GROUP --yes --no-wait
sleep 180

echo "Deleting data disks, it may take up to 30 seconds"
az disk delete --name "$VM_NAME-disk01" --resource-group $AZURE_RESOURCE_GROUP --yes --no-wait
sleep 30

echo "Dissociating public IP, it may take up to 30 seconds"
# having problem with that command inside the script
az network nic ip-config update --resource-group $AZURE_RESOURCE_GROUP --name "$VM_NAMEPublicIP" --nic-name "$VM_NAMEVMNic" --remove PublicIpAddress
sleep 30

echo "Deleting network interface, it may take up to 45 seconds"
# having problem with that command inside the script
az network nic delete -g $AZURE_RESOURCE_GROUP -n "$VM_NAMEVMNic"
sleep 45

echo "Deleting public IP, it may take up to 30 seconds"
# having problem with that command inside the script
az network public-ip delete -g $AZURE_RESOURCE_GROUP -n "$VM_NAMEPublicIP"
sleep 30

echo "Deleting network security group, it may take up to 30 seconds"
# having problem with that command inside the script
az network nsg delete -g $AZURE_RESOURCE_GROUP -n "$VM_NAMENSG"

echo $'\nResources of $VM_NAME deleted successfully'

при запуске вышеуказанного сценария, моей виртуальной машины и ее диски успешно удалены, но последние команды выдают вышеуказанную ошибку:

'C: \ Program' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

Можете ли вы помочь мне решить эту проблему? Спасибо:)

1 Ответ

1 голос
/ 21 марта 2020

Решено! У меня были проблемы с моими 3 переменными «$ VM_NAMEPublicIP», «$ VM_NAMEVMNi c», «$ VM_NAMENSG» - поэтому я создал 3 переменные из вышеприведенного способа: NIC = $ VM_NAME $ VMNi c, et c. Это сработало!

...