Sdílet prostřednictvím


Vlastní data a cloud-init ve službě Azure Virtual Machines

Platí pro: ✔️ Flexibilní škálovací sady virtuálních ✔️ počítačů s Windows virtuálních počítačů s Linuxem ✔️

Při zřizování možná budete muset do virtuálního počítače Microsoft Azure vložit skript nebo jiná metadata. V jiných cloudech se tento koncept často označuje jako uživatelská data. Microsoft Azure má podobnou funkci, která se nazývá vlastní data.

Vlastní data jsou k dispozici virtuálnímu počítači během prvního spuštění nebo instalace, což se označuje jako zřizování. Zřizování je proces, kdy jsou virtuálnímu počítači k dispozici parametry vytvoření virtuálního počítače (například název hostitele, uživatelské jméno, heslo, certifikáty, vlastní data a klíče). Agent zřizování, jako je agent Linuxu nebo cloud-init, tyto parametry zpracuje.

Předání vlastních dat virtuálnímu počítači

Pokud chcete použít vlastní data, musíte před předáním dat do rozhraní API kódovat obsah base64– pokud nepoužíváte nástroj rozhraní příkazového řádku, který provede převod za vás, například Azure CLI. Velikost nesmí překročit 64 kB.

V rozhraní příkazového řádku můžete vlastní data předat jako soubor, jak ukazuje následující příklad. Soubor se převede na Base64.

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

V Azure Resource Manageru je funkce Base64:

"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')]"
        },

Zpracování vlastních dat

Agenti zřizování nainstalovaní na virtuálních počítačích zpracovávají komunikaci s platformou a umísťují data do systému souborů.

Windows

Vlastní data se umístí do složky %SYSTEMDRIVE%\AzureData\CustomData.bin jako binární soubor, ale nezpracovávají se. Pokud chcete tento soubor zpracovat, musíte vytvořit vlastní image a napsat kód pro zpracování CustomData.bin.

Linux

V operačních systémech Linux se vlastní data předávají virtuálnímu počítači prostřednictvím ovf-env.xml souboru. Tento soubor se během zřizování zkopíruje do adresáře /var/lib/waagent . Novější verze linuxového agenta zkopírují data zakódovaná pomocí Base64 do složky /var/lib/waagent/CustomData pro usnadnění.

Azure v současné době podporuje dva agenty zřizování:

  • Agent pro Linux. Ve výchozím nastavení agent nezpracovává vlastní data. Potřebujete vytvořit vlastní image s povolenými daty. Relevantní nastavení :

    • Provisioning.DecodeCustomData
    • Provisioning.ExecuteCustomData

    Když povolíte vlastní data a spustíte skript, virtuální počítač nenahlásí úspěšné zřízení virtuálního počítače, dokud se skript nedokončí. Pokud skript překročí celkový časový limit zřizování virtuálního počítače 40 minut, vytvoření virtuálního počítače selže.

    Pokud se skript nepodaří spustit nebo dojde k chybám během provádění, nejedná se o závažnou chybu zřizování. Musíte vytvořit cestu oznámení, která vás upozorní na stav dokončení skriptu.

    Pokud chcete řešit potíže se spouštěním vlastních dat, projděte si /var/log/waagent.log.

  • cloud-init. Ve výchozím nastavení tento agent zpracovává vlastní data. Přijímá více formátů vlastních dat, jako je konfigurace cloud-init a skripty.

    Podobně jako v případě, že při spouštění konfiguračního zpracování nebo skriptů dojde k chybám při zpracování vlastních dat cloud-init, nejedná se o závažnou chybu zřizování. Musíte vytvořit cestu oznámení, která vás upozorní na stav dokončení skriptu.

    Na rozdíl od linuxového agenta ale cloud-init nečeká na dokončení vlastních konfigurací dat od uživatele, než se nahlásí platformě, kterou je virtuální počítač připravený. Další informace o cloud-init v Azure, včetně řešení potíží, najdete v tématu podpora cloud-init pro virtuální počítače v Azure.

Často kladené dotazy

Můžu po vytvoření virtuálního počítače aktualizovat vlastní data?

U jednotlivých virtuálních počítačů nemůžete aktualizovat vlastní data v modelu virtuálního počítače. U škálovacích sad virtuálních počítačů ale můžete aktualizovat vlastní data. Další informace naleznete v tématu Úprava škálovací sady. Při aktualizaci vlastních dat v modelu pro škálovací sadu virtuálních počítačů:

  • Existující instance ve škálovací sadě nedostanou aktualizovaná vlastní data, dokud nebudou aktualizovány na nejnovější model a nezomagí.
  • Nové instance přijímají nová vlastní data.

Můžu do vlastních dat umístit citlivé hodnoty?

Nedoporučujeme ukládat citlivá data do vlastních dat. Další informace najdete v tématu Osvědčené postupy zabezpečení a šifrování dat Azure.

Jsou vlastní data dostupná v IMDS?

Vlastní data nejsou ve službě Azure Instance Metadata Service (IMDS) dostupná. Místo toho doporučujeme používat uživatelská data v IMDS. Další informace najdete v tématu Uživatelská data prostřednictvím služby Azure Instance Metadata Service.