Ustawianie zmiennych powłoki z danych wyjściowych interfejsu wiersza polecenia
Teraz, gdy masz identyfikator kontrolera interfejsu sieciowego, uruchom az network nic show
w celu pobrania informacji o nim. Nie potrzebujesz tutaj grupy zasobów, ponieważ nazwa grupy zasobów jest zawarta w identyfikatorze zasobu platformy Azure.
az network nic show --ids $nicId
To polecenie wyświetla wszystkie informacje dla interfejsu sieciowego maszyny wirtualnej. Dane te obejmują ustawienia DNS, informacje o adresie IP, ustawienia zabezpieczeń i adres MAC. Poniższe zapytanie pokazuje, jak uzyskać publiczny adres IP i identyfikatory obiektów podsieci.
az network nic show --ids $nicId \
--query '{IP:ipConfigurations[].publicIPAddress.id, Subnet:ipConfigurations[].subnet.id}' \
-o json
{
"IP": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
],
"Subnet": [
"/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
]
}
To polecenie wyświetla obiekt JSON, który ma klucze niestandardowe („IP” i „Subnet”) dla wyodrębnionych wartości. Ten styl danych wyjściowych może nie być przydatny w przypadku narzędzia wiersza polecenia, ale poprawia czytelność dla ludzi i może być używany z niestandardowymi skryptami.
Aby użyć narzędzia wiersza polecenia, zmień polecenie w celu usunięcia niestandardowych kluczy JSON i danych wyjściowych jako tsv
. Polecenie read
przetwarza ten styl danych wyjściowych, ładując wyniki do wielu zmiennych. Ponieważ dwie wartości są wyświetlane w osobnych wierszach, ogranicznik polecenia musi być ustawiony na pusty ciąg, read
a nie domyślny biały znak inny niż nowy wiersz.
read -d '' ipId subnetId <<< $(az network nic show \
--ids $nicId \
--query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
Jeśli nie chcesz używać powłoki Bash read
lub polecenia programu PowerShell -split
, możesz ustawić każdą zmienną oddzielnie.
$ipId = az network nic show --ids $nicId --query '[ipConfigurations[].publicIPAddress.id]' -o tsv
$subnetId = az network nic show --ids $nicId --query '[ipConfigurations[].subnet.id]' -o tsv
Użyj publicznego identyfikatora obiektu IP, aby wyszukać publiczny adres IP i zapisać go w zmiennej powłoki. Identyfikator podsieci został użyty do zademonstrowania sposobu wykonywania zapytań i przechowywania wielu wartości w interfejsie wiersza polecenia platformy Azure. W związku z tym nie jest to konieczne w pozostałej części samouczka.
vmIpAddress=$(az network public-ip show --ids $ipId \
--query ipAddress \
-o tsv)
Teraz masz adres IP maszyny wirtualnej przechowywany w zmiennej powłoki. Przejdź dalej i sprawdź, czy jest to ta sama wartość, która została użyta do początkowego nawiązania połączenia z maszyną wirtualną.
echo $vmIpAddress