Gyakorlat – Virtuális gép rendszer- és futtatókörnyezeti információinak lekérése

Befejeződött

Most, hogy létrehoztunk egy virtuális gépet, más parancsokon keresztül kaphatunk róla információt.

Kezdjük a futtatással vm list.

az vm list

Ez a parancs visszaadja az előfizetésben meghatározott összes virtuális gépet. A kimenetet egy adott erőforráscsoportra szűrheti a --resource-group paraméteren keresztül.

Kimenetek típusai

Látható, hogy az eddig végrehajtott összes parancs alapértelmezett választípusa JSON. Ez kiválóan alkalmas szkriptek készítésére, de a legtöbben nehezebben olvasnak. A(z) --output jelölővel módosíthatja bármely válasz kimeneti stílusát. Futtassa például a következő parancsot az Azure Cloud Shellben a különböző kimeneti stílus megtekintéséhez.

az vm list --output table

A(z) table paranccsal együtt megadhatja a következőket: json (alapértelmezett), jsonc (színezett JSON) vagy tsv (tabulátorral tagolt értékek). Próbáljon ki néhány változatot az előző paranccsal a különbség megtekintéséhez.

Az IP-cím lekérése

Egy másik hasznos parancs, vm list-ip-addressesamely felsorolja a virtuális gép nyilvános és privát IP-címét. Ha megváltoznak, vagy nem rögzítette őket a létrehozás során, bármikor lekérhetők.

az vm list-ip-addresses -n SampleVM -o table

Ez a következő kimenetet adja vissza:

VirtualMachine    PublicIPAddresses    PrivateIPAddresses
----------------  -------------------  --------------------
SampleVM          168.61.54.62         10.0.0.4

Tipp.

Figyelje meg, hogy a jelölő rövidített szintaxisát --output használjuk.-o A legtöbb paramétert egyetlen kötőjelre és betűre rövidítheti az Azure CLI-parancsokra. Rövidíthet --name például a következőre-n:--resource-group-g Ez hasznos a billentyűzetkarakterek beírásához, de javasoljuk, hogy a teljes beállításnevet használja a szkriptekben az egyértelműség érdekében. Az egyes parancsokkal kapcsolatos részletekért tekintse meg a dokumentációt.

Virtuális gép részleteinek lekérése

Részletesebb információkat kaphatunk egy adott virtuális gépről a parancsot futtató vm show név vagy azonosító alapján.

az vm show --resource-group "<rgn>[sandbox resource group name]</rgn>" --name SampleVM

Ez egy meglehetősen nagy JSON-blokkot ad vissza, amely mindenféle információt tartalmaz a virtuális gépről, beleértve a csatlakoztatott tárolóeszközöket, hálózati adaptereket és az összes objektumazonosítót az erőforrásokhoz, amelyekhez a virtuális gép csatlakozik. Válthatunk tábla formátumra is, de ekkor kimarad szinte az összes érdekes adat. Ehelyett használhatjuk a JSON beépített lekérdezési nyelvét, a JMESPath nyelvet.

Szűrők hozzáadása lekérdezésekhez a JMESPath használatával

A JMESPath egy iparági szabványos lekérdezési nyelv, amely a JSON-objektumok köré épül. A legegyszerűbb lekérdezés, ha megad egy azonosítót, amely kiválasztja a JSON-objektumban lévő egyik kulcsot.

Ha például adott a következő objektum:

{
  "people": [
    {
      "name": "Fred",
      "age": 28
    },
    {
      "name": "Barney",
      "age": 25
    },
    {
      "name": "Wilma",
      "age": 27
    }
  ]
}

A(z) people lekérdezéssel visszaadható az értékek tömbje a(z) people tömbhöz. Ha csak egy személyre kíváncsi, indexelőt használhat. A people[1] például a következőt adja vissza:

{
    "name": "Barney",
    "age": 25
}

Konkrét minősítőket is hozzáadhat, amelyek bizonyos kritériumoknak megfelelően az objektum egy részét adják vissza. Például a people[?age > '25'] minősítő hozzáadásakor ez lesz az eredmény:

[
  {
    "name": "Fred",
    "age": 28
  },
  {
    "name": "Wilma",
    "age": 27
  }
]

Végül az eredmények korlátozásához hozzáadhatunk egy adott people[?age > '25'].[name] objektumot, amely csak a neveket adja vissza:

[
  [
    "Fred"
  ],
  [
    "Wilma"
  ]
]

A JMESQuery számos más érdekes lekérdezési funkcióval is rendelkezik. Amikor van rá ideje, tekintse meg a JMESPath.org webhelyen elérhető online oktatóanyagot.

Az Azure CLI-lekérdezések szűrése

A JMES-lekérdezések alapszintű ismeretével szűrőket adhatunk hozzá a lekérdezések által visszaadott adatokhoz, például a vm show parancshoz. Lekérhetjük például a rendszergazdai felhasználónevet:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query "osProfile.adminUsername"

Lekérdezhetjük a virtuális géphez rendelt méretet:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query hardwareProfile.vmSize

Vagy a hálózati adapterek összes azonosítójának lekéréséhez futtathatjuk a lekérdezést:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query "networkProfile.networkInterfaces[].id"

Ez a lekérdezési technika bármely Azure CLI-paranccsal működik, és használatával bizonyos adatbiteket lekérhet a parancssorból. Ez a szkripteléshez is hasznos. Lekérhet például egy értéket az Azure-fiókjából, és tárolhatja egy környezetben vagy szkriptváltozóban. Ha úgy dönt, hogy így használja, érdemes hozzáadni a --output tsv paramétert (amelyre rövidíthet -o tsv). Ez olyan eredményeket ad vissza, amelyek csak a tényleges adatértékeket tartalmazzák tabulátorokkal.

Például:

az vm show \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name SampleVM \
    --query "networkProfile.networkInterfaces[].id" -o tsv

ezt a szöveget adja vissza: /subscriptions/20f4b944-fc7a-4d38-b02c-900c8223c3a0/resourceGroups/2568d0d0-efe3-4d04-a08f-df7f009f822a/providers/Microsoft.Network/networkInterfaces/SampleVMVMNic