podpora cloud-init pro virtuální počítače v Azure
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
Tento článek vysvětluje podporu, která existuje pro cloud-init ke konfiguraci virtuálního počítače nebo škálovacích sad virtuálních počítačů v době zřizování v Azure. Tyto konfigurace cloud-init se spouští při prvním spuštění po zřízení prostředků v Azure.
Zřizování virtuálních počítačů je proces, kdy Azure předává hodnoty parametrů Create virtuálního počítače, jako je název hostitele, uživatelské jméno a heslo, a zpřístupní je virtuálnímu počítači při jeho spuštění. Agent zřizování tyto hodnoty spotřebuje, nakonfiguruje virtuální počítač a po dokončení se vrátí zpět.
podpora Azure dva agenty zřizování cloud-init a agenta Azure Linuxu (WALA).
přehled cloud-init
Cloud-init je široce používaný přístup k přizpůsobení virtuálního počítače s Linuxem při prvním spuštění. Pomocí cloud-init můžete instalovat balíčky a zapisovat soubory nebo konfigurovat uživatele a zabezpečení. Vzhledem k tomu, že se cloud-init volá během počátečního procesu spouštění, nejsou k dispozici žádné další kroky nebo požadované agenty pro použití vaší konfigurace. Další informace o tom, jak správně formátovat #cloud-config
soubory nebo jiné vstupy, najdete na webu dokumentace cloud-init. #cloud-config
soubory jsou textové soubory kódované v base64.
Cloud-init funguje také napříč distribucemi. K instalaci balíčku tak například nepoužijete apt-get install ani yum install. Místo toho můžete definovat seznam balíčků pro instalaci. Cloud-init automaticky používá nativní nástroj pro správu balíčků pro výběr distribuce.
Aktivně spolupracujeme s našimi doporučenými partnery pro distribuce Linuxu, abychom měli k dispozici image s podporou cloudu na Azure Marketplace. Díky těmto imagím budou vaše nasazení a konfigurace cloud-init bez problémů fungovat s virtuálními počítači a škálovacími sadami virtuálních počítačů. Zpočátku spolupracujeme s doporučenými partnery distribuce Linuxu a upstreamem, abychom zajistili, že funkce cloud-init s operačním systémem v Azure, pak se balíčky aktualizují a zpřístupní veřejně v úložištích balíčků distribuce.
Existují dvě fáze zpřístupnění cloud-init podporovaným linuxovým distribucím v Azure, podpoře balíčků a následné podpoře imagí:
- Dokumenty s podporou balíčků cloud-init v Azure, které jsou balíčky cloud-init dál podporované nebo ve verzi Preview, takže tyto balíčky můžete používat s operačním systémem ve vlastní imagi.
- Dokumenty připravené pro cloud-init image, pokud je už image nakonfigurovaná tak, aby používala cloud-init.
Canonical
Vydavatel / verze | Nabízet | Skladová jednotka (SKU) | Verze | Image cloud-init ready | Podpora balíčků cloud-init v Azure |
---|---|---|---|---|---|
Kanonický 24.04 | UbuntuServer | 22.04-LTS | nejnovější | ano | ano |
Kanonický 22.04 | UbuntuServer | 22.04-LTS | nejnovější | ano | ano |
Kanonický 20.04 | UbuntuServer | 20.04-LTS | nejnovější | ano | ano |
RHEL
Vydavatel / verze | Nabízet | Skladová jednotka (SKU) | Verze | Image cloud-init ready | Podpora balíčků cloud-init v Azure |
---|---|---|---|---|---|
RedHat 7 | RHEL | 7.7, 7.8, 7_9 | nejnovější | ano | ano |
RedHat 8 | RHEL | 8.1, 8.2, 8_3, 8_4 | nejnovější | ano | ano |
RedHat 9 | RHEL | 9_0, 9_1 | nejnovější | ano | ano |
- Všechny ostatní skladové položky RedHat od RHEL 7 (verze 7.7) a RHEL 8 (verze 8.1) včetně imagí Gen1 a Gen2 se zřizují pomocí cloud-init. Cloud-init se v RHEL 6 nepodporuje.
Oracle
Vydavatel / verze | Nabízet | Skladová jednotka (SKU) | Verze | Image cloud-init ready | Podpora balíčků cloud-init v Azure |
---|---|---|---|---|---|
Oracle 7 | Oracle Linux | 77, 78, ol79 | nejnovější | ano | ano |
Oracle 8 | Oracle Linux | 81, ol82, ol83-lvm, ol84-lvm | nejnovější | ano | ano |
- Všechny ostatní skladové položky Oracle počínaje Oracle 7 (verze 7.7) a Oracle 8 (verze 8.1) včetně imagí Gen1 a Gen2 se zřizují pomocí cloud-init.
SUSE SLES
Vydavatel / verze | Nabízet | Skladová jednotka (SKU) | Verze | Image cloud-init ready | Podpora balíčků cloud-init v Azure |
---|---|---|---|---|---|
SUSE 15 | SLES (SUSE Linux Enterprise Server) | sp1, sp2, sp3 | nejnovější | ano | ano |
SUSE 12 | SLES (SUSE Linux Enterprise Server) | sp5 | nejnovější | ano | ano |
Debian
Vydavatel / verze | Nabízet | Skladová jednotka (SKU) | Verze | Image cloud-init ready | Podpora balíčků cloud-init v Azure |
---|---|---|---|---|---|
debian-10 | Debian | 10-cloudinit-gen2 | Debian:debian-10:10-cloudinit-gen2:0.0.1015 | ano | ano |
debian-10 | Debian | 10-cloudinit-gen2 | Debian:debian-10:10-cloudinit-gen2:0.0.991 | ano | ano |
debian-10 | Debian | 10-cloudinit-gen2 | Debian:debian-10:10-cloudinit-gen2:0.0.999 | ano | ano |
Azure Stack v současné době podporuje zřizování imagí s podporou cloudu.
Jaký je rozdíl mezi cloud-init a linuxovým agentem (WALA)?
WALA je agent specifický pro platformu Azure, který se používá ke zřizování a konfiguraci virtuálních počítačů a zpracování rozšíření Azure.
Vylepšujeme úlohu konfigurace virtuálních počítačů tak, aby místo linuxového agenta používaly cloud-init, aby stávající zákazníci cloud-init mohli používat své aktuální skripty cloud-init nebo noví zákazníci, aby mohli využívat bohaté funkce konfigurace cloud-init. Pokud máte stávající investice do skriptů cloud-init pro konfiguraci systémů Linux, nejsou nutná žádná další nastavení pro povolení procesu cloud-init.
Cloud-init nemůže zpracovávat rozšíření Azure, takže WALA je stále potřeba na imagi ke zpracování rozšíření, ale musí mít zakázaný zřizovací kód. Pro schválené linuxové distribuce imagí, které se konvertují na zřizování cloud-init, mají nainstalované WALA a správně nastavují.
Pokud při vytváření virtuálního počítače nezahrnete přepínač Azure CLI --custom-data
při zřizování, cloud-init nebo WALA převezme minimální parametry zřizování virtuálního počítače potřebné ke zřízení virtuálního počítače a dokončení nasazení s výchozími hodnotami. Pokud odkazujete na konfiguraci cloud-init s přepínačem --custom-data
, bude při spuštění virtuálního počítače k dispozici cokoli, co obsahuje vaše vlastní data, cloud-init.
Konfigurace cloud-init použité na virtuální počítače nemají časová omezení a nezpůsobí selhání nasazení vypršením časového limitu. To neplatí pro WALA, pokud změníte výchozí nastavení WALA na zpracování vlastních dat, nemůže překročit celkový časový limit zřizování virtuálního počítače 40 minut, pokud ano, vytvoření virtuálního počítače selže.
Zřizování virtuálních počítačů cloud-init bez ovladače UDF
Počínaje cloud-init 21.2 můžete pomocí cloud-init zřídit virtuální počítač v Azure bez ovladače UDF. Pokud ovladač UDF není v imagi dostupný, cloud-init použije k zřízení virtuálního počítače metadata, která jsou k dispozici ve službě Azure Instance Metadata Service. Tato možnost funguje jenom pro klíč SSH a uživatelská data. Pokud chcete během zřizování předat virtuálnímu počítači heslo nebo vlastní data, musíte použít ovladač UDF.
Nasazení virtuálního počítače s podporou cloudu
Nasazení virtuálního počítače s podporou cloudu je stejně jednoduché jako odkazování na distribuci s podporou cloudu během nasazování. Správci distribuce Linuxu se musí rozhodnout povolit a integrovat cloud-init do svých základních publikovaných imagí Azure. Jakmile potvrdíte, že je image, kterou chcete nasadit, povolená cloud-init, můžete k nasazení image použít Azure CLI.
Prvním krokem při nasazení této image je vytvoření skupiny prostředků pomocí příkazu az group create . Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus.
az group create --name myResourceGroup --location eastus
Dalším krokem je vytvoření souboru v aktuálním prostředí s názvem cloud-init.txt a vložením následující konfigurace. V tomto příkladu vytvořte soubor v Cloud Shellu, ne na místním počítači. Můžete použít libovolný editor podle svého výběru. Zadejte rozumné cloud-init.txt editoru, abyste soubor vytvořili a zobrazili seznam dostupných editorů. Použijte editor podle svého výběru. Mezi typické volby patří nano, vim nebo ed. Ujistěte se, že se celý soubor cloud-init zkopíroval správně, zejména první řádek:
SLES | Ubuntu | RHEL |
---|---|---|
# cloud-config package_upgrade: true packages: - apache2 |
# cloud-config package_upgrade: true packages: - httpd |
# cloud-config package_upgrade: true packages: - httpd |
Poznámka:
Cloud-init má více typů vstupu, cloud-init použije první řádek customData/userData k označení, jak by měl zpracovat vstup, například #cloud-config
indikuje, že obsah by se měl zpracovat jako konfigurace cloud-init.
Ukončete soubor a soubor uložte podle editoru. Ověřte název souboru při ukončení.
Posledním krokem je vytvoření virtuálního počítače pomocí příkazu az vm create .
Následující příklad vytvoří virtuální počítač s názvem ubuntu2204
a vytvoří klíče SSH, pokud ještě neexistují ve výchozím umístění klíče. Chcete-li použít konkrétní sadu klíčů, použijte možnost --ssh-key-value
. Pomocí parametru --custom-data
předejte svůj konfigurační soubor cloud-init. Pokud jste konfigurační soubor cloud-init.txt uložili mimo aktuální pracovní adresář, zadejte úplnou cestu k němu.
az vm create \
--resource-group myResourceGroup \
--name ubuntu2204 \
--image Canonical:UbuntuServer:22_04-lts:latest \
--custom-data cloud-init.txt \
--generate-ssh-keys
Po vytvoření virtuálního počítače se v Azure CLI zobrazí informace specifické pro vaše nasazení. Poznamenejte si publicIpAddress
. Tato adresa se používá pro přístup k virtuálnímu počítači. Vytvoření virtuálního počítače, instalace balíčků a spuštění aplikace nějakou dobu trvá. Když vás Azure CLI vrátí na příkazový řádek, na pozadí stále poběží úlohy. Připojte se k virtuálnímu počítači pomocí SSH a pomocí kroků uvedených v části Řešení potíží zobrazte protokoly cloud-init.
Virtuální počítač s podporou cloudu můžete nasadit také předáním parametrů v šabloně ARM.
Řešení potíží s cloud-init
Jakmile je virtuální počítač zřízený, cloud-init projde všemi moduly a skripty definovanými za --custom-data
účelem konfigurace virtuálního počítače. Pokud potřebujete vyřešit případné chyby nebo vynechání konfigurace, musíte vyhledat název modulu (disk_setup
nebo runcmd
například) v protokolu cloud-init , který se nachází v /var/log/cloud-init.log.
Poznámka:
Ne každé selhání modulu vede k závažnému selhání celkové konfigurace cloud-init. Pokud například runcmd
skript selže, cloud-init bude i nadále oznamovat úspěšné zřizování, protože se spustil modul runcmd.
Další informace o protokolování cloud-init najdete v dokumentaci ke cloud-init.
Telemetrie
cloud-init shromažďuje data o využití a odesílá je Microsoftu, aby pomohl zlepšit naše produkty a služby. Telemetrie se shromažďuje jenom během procesu zřizování (první spuštění virtuálního počítače). Shromážděná data nám pomáhají prošetřit selhání zřizování a monitorovat výkon a spolehlivost. Shromážděná data neobsahují žádné identifikátory (osobní identifikátory). Další informace najdete v našem prohlášení o zásadách ochrany osobních údajů. Mezi příklady shromažďovaných telemetrických dat patří (nejedná se o vyčerpávající seznam): informace související s operačním systémem (verze cloud-init, verze distribuce, verze jádra), metriky výkonu základních akcí zřizování virtuálních počítačů (doba získání zapůjčení DHCP, doba načtení metadat potřebných ke konfiguraci virtuálního počítače atd.), protokol cloud-init a protokol dmesg.
Shromažďování telemetrie je aktuálně povolené pro většinu imagí z marketplace, které používají cloud-init. Povolí se zadáním reportéru telemetrie KVP pro cloud-init. Ve většině imagí Azure Marketplace tuto konfiguraci najdete v souboru /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg. Odebráním tohoto souboru během přípravy image zakážete shromažďování telemetrie pro všechny virtuální počítače vytvořené z této image.
Ukázkový obsah 10-azure-kvp.cfg
reporting:
logging:
type: log
telemetry:
type: hyperv
Další kroky
Příklady změn konfigurace cloud-init najdete v následujících dokumentech: