Shell-variabelen instellen vanuit CLI-uitvoer
Nu u de id van de NIC hebt, voert u az network nic show
uit om de informatie ervan op te halen. U hebt hier geen resourcegroep nodig, omdat de naam van de resourcegroep zich in de Azure-resource-id bevindt.
az network nic show --ids $nicId
Deze opdracht toont alle informatie van de netwerkinterface van de VM. Tot deze informatie behoren DNS-instellingen, IP-informatie, beveiligingsinstellingen en het MAC-adres. De volgende query laat zien hoe u de openbare IP-adres- en subnetobject-id's ophaalt.
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"
]
}
In deze opdracht wordt een JSON-object weergegeven met aangepaste sleutels (IP en Subnet) die voor de uitgepakte waarden staan. Hoewel de stijl van deze uitvoer mogelijk niet handig is voor opdrachtregelprogramma's, is de uitvoer wel leesbaarder voor mensen en kan deze worden gebruikt met aangepaste scripts.
Als u opdrachtregelprogramma's wilt gebruiken, wijzigt u de opdracht zodanig dat de aangepaste JSON-sleutel en -uitvoer als tsv
worden verwijderd. De read
opdracht verwerkt deze uitvoerstijl door resultaten in meerdere variabelen te laden. Omdat er twee waarden worden weergegeven op afzonderlijke regels, moet het read
opdrachtscheidingsteken worden ingesteld op de lege tekenreeks in plaats van de standaardwaarde van niet-nieuwe regelspaties.
read -d '' ipId subnetId <<< $(az network nic show \
--ids $nicId \
--query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
-o tsv)
Als u de Bash read
- of PowerShell-opdracht -split
niet wilt gebruiken, kunt u elke variabele afzonderlijk instellen.
$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
Gebruik de id van het openbare IP-object om het openbare IP-adres op te zoeken en op te slaan in een shellvariabele. De subnet-id is gebruikt om te laten zien hoe u meerdere waarden opvraagt en opslaat in de Azure CLI. Daarom is het niet nodig voor de rest van de zelfstudie.
vmIpAddress=$(az network public-ip show --ids $ipId \
--query ipAddress \
-o tsv)
U hebt nu het IP-adres van de VM opgeslagen in een shell-variabele. Ga verder en controleer of het dezelfde waarde is die u hebt gebruikt om in eerste instantie verbinding te maken met de virtuele machine.
echo $vmIpAddress