Megosztás a következőn keresztül:


Egyéni adatok és felhőbeli init azure-beli virtuális gépeken

A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek ✔️ – Windows rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai

Előfordulhat, hogy szkriptet vagy más metaadatokat kell beszúrnia egy Microsoft Azure-beli virtuális gépbe a kiépítéskor. Más felhőkben ezt a fogalmat gyakran nevezik felhasználói adatoknak. A Microsoft Azure hasonló, úgynevezett egyéni adatokkal rendelkezik.

Az egyéni adatok az első indításkor vagy beállításkor elérhetővé válnak a virtuális gép számára, amelyet kiépítésnek neveznek. A kiépítés az a folyamat, amelyben a virtuális gép létrehozási paraméterei (például állomásnév, felhasználónév, jelszó, tanúsítványok, egyéni adatok és kulcsok) elérhetővé válnak a virtuális gép számára. Egy kiépítési ügynök, például a Linux-ügynök vagy a cloud-init feldolgozza ezeket a paramétereket.

Egyéni adatok átadása a virtuális gépnek

Az egyéni adatok használatához a Base64-nek kódolnia kell a tartalmat, mielőtt átadja az adatokat az API-nak – kivéve, ha olyan CLI-eszközt használ, amely elvégzi az átalakítást, például az Azure CLI-t. A méret nem haladhatja meg a 64 KB-ot.

A parancssori felületen fájlként továbbíthatja az egyéni adatokat, ahogy az az alábbi példában is látható. A rendszer a fájlt Base64-nek alakítja át.

az vm create \
  --resource-group myResourceGroup \
  --name myVM \
  --image Ubuntu2204 \
  --custom-data cloud-init.txt \
  --generate-ssh-keys

Az Azure Resource Managerben van egy base64 függvény:

"name": "[parameters('virtualMachineName')]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2019-07-01",
"location": "[parameters('location')]",
"dependsOn": [
..],
"variables": {
        "customDataBase64": "[base64(parameters('stringData'))]"
    },
"properties": {
..
    "osProfile": {
        "computerName": "[parameters('virtualMachineName')]",
        "adminUsername": "[parameters('adminUsername')]",
        "adminPassword": "[parameters('adminPassword')]",
        "customData": "[variables('customDataBase64')]"
        },

Egyéni adatok feldolgozása

A virtuális gépekre telepített kiépítési ügynökök kezelik a platformmal folytatott kommunikációt, és adatokat helyeznek el a fájlrendszerben.

Windows

Az egyéni adatok a %SYSTEMDRIVE%\AzureData\CustomData.bin fájlba kerülnek bináris fájlként, de nincsenek feldolgozva. Ha ezt a fájlt szeretné feldolgozni, egyéni rendszerképet kell létrehoznia, és kódot kell írnia a CustomData.bin feldolgozásához.

Linux

Linux operációs rendszereken a rendszer az egyéni adatokat a ovf-env.xml fájlon keresztül továbbítja a virtuális gépnek . A fájl a kiépítés során a /var/lib/waagent könyvtárba lesz másolva. A Linux-ügynök újabb verziói a Base64 kódolású adatokat a /var/lib/waagent/CustomData fájlba másolja a kényelem érdekében.

Az Azure jelenleg két kiépítési ügynököt támogat:

  • Linux-ügynök. Alapértelmezés szerint az ügynök nem dolgoz fel egyéni adatokat. Egyéni rendszerképet kell létrehoznia az engedélyezett adatokkal. A vonatkozó beállítások a következők:

    • Provisioning.DecodeCustomData
    • Provisioning.ExecuteCustomData

    Ha engedélyezi az egyéni adatokat, és szkriptet futtat, a virtuális gép nem fog sikeres virtuálisgép-kiépítést jelenteni, amíg a szkript nem fejeződik be. Ha a szkript túllépi a virtuális gépek üzembe helyezésének teljes 40 perces korlátját, a virtuális gép létrehozása meghiúsul.

    Ha a szkript nem fut, vagy a végrehajtás során hibák történnek, az nem végzetes kiépítési hiba. Létre kell hoznia egy értesítési útvonalat, amely figyelmezteti a szkript befejezési állapotára.

    Az egyéni adatvégrehajtás hibaelhárításához tekintse át a /var/log/waagent.log.

  • cloud-init. Alapértelmezés szerint ez az ügynök egyéni adatokat dolgoz fel. Több egyéni adatformátumot is elfogad, például a cloud-init konfigurációt és a szkripteket.

    A Linux-ügynökhöz hasonlóan, ha a konfigurációfeldolgozás vagy szkriptek végrehajtása során hibák történnek, amikor a cloud-init az egyéni adatokat dolgozza fel, az nem végzetes kiépítési hiba. Létre kell hoznia egy értesítési útvonalat, amely figyelmezteti a szkript befejezési állapotára.

    A Linux-ügynökkel ellentétben azonban a cloud-init nem várja meg, amíg a felhasználó egyéni adatkonfigurációi befejeződnek, mielőtt a virtuális gép készen áll a platformra való jelentéskészítésre. Az Azure-beli cloud-init szolgáltatással kapcsolatos további információkért, beleértve a hibaelhárítást is, tekintse meg az Azure-beli virtuális gépek cloud-init-támogatását.

GYIK

Frissíthetem az egyéni adatokat a virtuális gép létrehozása után?

Egyetlen virtuális gép esetében nem frissíthet egyéni adatokat a virtuálisgép-modellben. A virtuálisgép-méretezési csoportok esetében azonban frissítheti az egyéni adatokat. További információ: Méretezési csoport módosítása. Amikor egy virtuálisgép-méretezési csoport modelljében frissíti az egyéni adatokat:

  • A méretezési csoportban lévő meglévő példányok nem kapják meg a frissített egyéni adatokat, amíg nem frissülnek az utolsó modellre, és újra nem épülnek.
  • Az új példányok megkapják az új egyéni adatokat.

Elhelyezhetek bizalmas értékeket egyéni adatokban?

Javasoljuk , hogy ne tároljon bizalmas adatokat egyéni adatokban. További információkért tekintse meg az Azure adatbiztonsági és titkosítási ajánlott eljárásait.

Elérhetővé válnak az egyéni adatok az IMDS-ben?

Az egyéni adatok nem érhetők el az Azure Instance Metadata Service-ben (IMDS). Javasoljuk, hogy inkább felhasználói adatokat használjon az IMDS-ben. További információ: Felhasználói adatok az Azure Instance Metadata Service-ben.