Сохранение вывода команды CLI Azure в качестве переменной - PullRequest
0 голосов
/ 29 ноября 2018

Мне нужно сохранить выходные данные команд AZ cli, которые выбирают мои частные IP-адреса как переменные.

Я использую следующее в скрипте bash:

echo "Fetching Monitoring Server IP"
SERVER_IP=$(az vm show -n ${THIS_VM_NAME} -g ${RSC_GRP_NAME} --query privateIps -o tsv)
echo "$SERVER_IP

Это будетПохоже, что это не работает, так как когда я эхо переменной, он возвращается пустым.

+ THIS_VM_NAME=XXXX-XX-XX-XX-XX
+ echo 'Fetching Monitoring Server IP'
Fetching Monitoring Server IP
++ az vm show -n XXXX-XX-XX-XX-XX3 -g XXXX-XX-XX-XX-XX --query privateIps -o tsv
+ SERVER_IP=
+ echo ''

Я буду признателен за любые указатели на это

1 Ответ

0 голосов
/ 30 ноября 2018

Редактировать

Команда, которую вы публикуете, потеряла параметр для получения частных IP-адресов, вы можете использовать команду с параметром -d или --show-details следующим образом:

az vm show -g resourceGrouName -n vmName -d

Но эта команда просто получает все IP-адреса, включая вторичный IP-адрес.

Все первичные IP-адреса виртуальных машин каждого интерфейса можно получить с помощью сценария оболочки, подобного следующему:

count=0
while : ; do
    nic=$(az vm nic list -g resourceGroupName --vm-name vmName --query [$count].id -o tsv)
    if [[ $nic == '' ]]; then
        break
    fi
    privateIps[$count]=$(az vm nic show -g resourceGroupName --vm-name vmName --nic $nic --query ipConfigurations[0].privateIpAddress -o tsv)
    let count++

done
echo ${privateIps[*]}
...