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 a legújabb modellre, és újra nem formázzák őket.
- 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.