Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 pro zřizování použije tyto hodnoty, nakonfiguruje virtuální počítač a po dokončení ohlásí dokončení.
Azure podporuje dva agenty pro zřizování: cloud-init a Azure Linux Agent (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 stránkách 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 cloud-init funguje s operačním systémem na Azure. Následně se balíčky aktualizují a zpřístupní 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ídka | skladová jednotka (SKU) | Verze | Obrázek cloud-init připraven | Podpora balíčků cloud-init v Azure |
|---|---|---|---|---|---|
| Kanonický 24.04 | Ubuntu Server | 24.04-LTS | nejnovější | Ano | Ano |
| Canonical 22.04 | Ubuntu Server | 22.04-LTS | nejnovější | Ano | Ano |
| Canonical 20.04 | Ubuntu Server | 20.04-LTS | nejnovější | Ano | Ano |
RHEL
| Vydavatel / verze | Nabídka | skladová jednotka (SKU) | Verze | Obrázek cloud-init připraven | 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ídka | skladová jednotka (SKU) | Verze | Obrázek cloud-init připraven | 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ídka | skladová jednotka (SKU) | Verze | Obrázek cloud-init připraven | Podpora balíčků cloud-init v Azure |
|---|---|---|---|---|---|
| SUSE 15 | SLES (SUSE Linux Enterprise Server) | všichni poskytovatelé služeb | nejnovější | Ano | Ano |
| SUSE 12 | SLES (SUSE Linux Enterprise Server) | sp5 | nejnovější | Ano | Ano |
- SUSE Linux Enterprise Server 12 je po ukončení podpory dnem 31. října 2024, SP5 byl nejnovější Service Pack.
Debian
| Vydavatel / verze | Nabídka | skladová jednotka (SKU) | Verze | Obrázek cloud-init připraven | 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í obrazů s podporou cloud-init.
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 v image ke zpracování rozšíření, ale musí mít zakázaný kód pro zřizování. 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 pro zpracování vlastních dat, nesmí překročit celkový časový limit zřizování virtuálního počítače 40 minut. Pokud k tomu dojde, proces 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 není ovladač UDF v image dostupný, cloud-init použije metadata, která jsou k dispozici ve službě Azure Instance Metadata Service, pro zřízení virtuálního počítače. 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 distribucí Linuxu se musí rozhodnout, zda povolit a integrovat cloud-init do svých základních obrazů publikovaných na Azure. Jakmile potvrdíte, že obraz, který chcete nasadit, je s podporou cloud-init, můžete k nasazení obrazu použít Azure CLI.
Prvním krokem při nasazení této image je vytvoření skupiny prostředků pomocí az group create příkazu. 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ů s názvem myResourceGroup v lokaci 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 příkaz sensible-editor cloud-init.txt, abyste vytvořili soubor 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-configpackage_upgrade: truepackages: - apache2 |
# cloud-configpackage_upgrade: truepackages: - httpd |
# cloud-configpackage_upgrade: truepackages: - 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 práci se souborem a soubor uložte dle příslušného nastavení 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. Například, pokud selže skript runcmd, 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í analyzovat selhání při 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. Aktivuje 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: