cloud-init-támogatás az Azure-beli virtuális gépekhez
A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai
Ez a cikk azt ismerteti, hogy a cloud-init milyen támogatást nyújt egy virtuális gép (virtuális gép) vagy virtuálisgép-méretezési csoport konfigurálásához az Azure-ban való üzembe helyezéskor. Ezek a cloud-init konfigurációk az azure-beli erőforrások üzembe helyezése után futnak az első rendszerindításkor.
A virtuális gépek kiépítése az a folyamat, amelyben az Azure átadja a virtuális gépnek a create paraméterértékeket, például a gazdagépnevet, a felhasználónevet és a jelszót, és elérhetővé teszi őket a virtuális gép számára a működés közben. A kiépítési ügynök felhasználja ezeket az értékeket, konfigurálja a virtuális gépet, és ha elkészült, jelentést készít.
Azure-támogatás két felhőbeli kiépítési ügynököt és az Azure Linux-ügynököt (WALA).
a cloud-init áttekintése
A cloud-init egy széles körben használt módszer a Linux rendszerű virtuális gépek első indításakor történő testreszabására. A cloud-init használatával csomagokat telepíthet és fájlokat írhat, vagy beállíthatja a felhasználókat és a biztonságot. Mivel a rendszer meghívja a cloud-initet a kezdeti rendszerindítási folyamat során, nincsenek további lépések vagy szükséges ügynökök a konfiguráció alkalmazásához. A fájlok vagy egyéb bemenetek megfelelő formázásáról #cloud-config
a cloud-init dokumentációs webhelyén talál további információt. #cloud-config
A fájlok a base64-ben kódolt szövegfájlok.
A cloud-init a disztribúciók között is működik. Például nem kell az apt-get install vagy a yum install használatával telepítenie a csomagokat. Ehelyett megadhatja a telepítendő csomagok listáját. A cloud-init automatikusan a natív csomagkezelő eszközt használja a kiválasztott disztribúcióhoz.
Aktívan együttműködünk a támogatott Linux disztribúciós partnerekkel annak érdekében, hogy a cloud-init-kompatibilis rendszerképek elérhetők legyenek az Azure Marketplace-en. Ezek a rendszerképek zökkenőmentessé teszik a felhőbeli üzembe helyezéseket és konfigurációkat a virtuális gépekkel és a virtuálisgép-méretezési csoportokkal. Kezdetben együttműködünk a támogatott Linux disztribúciós partnerekkel és a felsőbb réteggel, hogy a cloud-init függvények működjenek az Azure operációs rendszerével, majd a csomagok frissülnek, és nyilvánosan elérhetővé válnak a disztribúciós csomag adattáraiban.
A cloud-init két fázisban érhető el a támogatott Linux-disztribúciók számára az Azure-ban, csomagtámogatás, majd rendszerkép-támogatás:
- A cloud-init csomag támogatása az Azure-dokumentumokban, amelyeken a cloud-init-csomagok támogatottak vagy előzetes verzióban érhetők el, így ezeket a csomagokat az operációs rendszerrel egyéni rendszerképben használhatja.
- "image cloud-init ready" dokumentumok, ha a rendszerkép már konfigurálva van a cloud-init használatára.
Canonical
Publisher/Verzió | Ajánlás | Termékváltozat | Verzió | image cloud-init ready | Cloud-init-csomag támogatása az Azure-ban |
---|---|---|---|---|---|
Canonical 24.04 | UbuntuServer | 22.04-LTS | legújabb | igen | igen |
Canonical 22.04 | UbuntuServer | 22.04-LTS | legújabb | igen | igen |
Canonical 20.04 | UbuntuServer | 20.04-LTS | legújabb | igen | igen |
RHEL
Publisher/Verzió | Ajánlás | Termékváltozat | Verzió | image cloud-init ready | Cloud-init-csomag támogatása az Azure-ban |
---|---|---|---|---|---|
RedHat 7 | RHEL | 7.7, 7.8, 7_9 | legújabb | igen | igen |
RedHat 8 | RHEL | 8.1, 8.2, 8_3, 8_4 | legújabb | igen | igen |
RedHat 9 | RHEL | 9_0, 9_1 | legújabb | igen | igen |
- Az RHEL 7 -től (7.7-es verzió) és az RHEL 8-tól (8.1-es verziótól) kezdődő összes többi RedHat SKU, beleértve a Gen1 és Gen2 rendszerképeket is, a cloud-init használatával vannak kiépítve. A Cloud-init nem támogatott az RHEL 6-on.
Oracle
Publisher/Verzió | Ajánlás | Termékváltozat | Verzió | image cloud-init ready | Cloud-init-csomag támogatása az Azure-ban |
---|---|---|---|---|---|
Oracle 7 | Oracle Linux | 77, 78, ol79 | legújabb | igen | igen |
Oracle 8 | Oracle Linux | 81, ol82, ol83-lvm, ol84-lvm | legújabb | igen | igen |
- Az Oracle 7 -től (7.7-es verzió) és az Oracle 8-tól (8.1-es verzió) kezdődő összes többi Oracle SKU, beleértve a Gen1 és Gen2 rendszerképeket is, a cloud-init használatával vannak kiépítve.
SUSE SLES
Publisher/Verzió | Ajánlás | Termékváltozat | Verzió | image cloud-init ready | Cloud-init-csomag támogatása az Azure-ban |
---|---|---|---|---|---|
SUSE 15 | SLES (SUSE Linux Enterprise Server) | sp1, sp2, sp3 | legújabb | igen | igen |
SUSE 12 | SLES (SUSE Linux Enterprise Server) | sp5 | legújabb | igen | igen |
Debian
Publisher/Verzió | Ajánlás | Termékváltozat | Verzió | image cloud-init ready | Cloud-init-csomag támogatása az Azure-ban |
---|---|---|---|---|---|
debian-10 | Debian | 10-cloudinit-gen2 | Debian:debian-10:10-cloudinit-gen2:0.0.1015 | igen | igen |
debian-10 | Debian | 10-cloudinit-gen2 | Debian:debian-10:10-cloudinit-gen2:0.0.991 | igen | igen |
debian-10 | Debian | 10-cloudinit-gen2 | Debian:debian-10:10-cloudinit-gen2:0.0.999 | igen | igen |
Az Azure Stack jelenleg támogatja a cloud-init-kompatibilis rendszerképek kiépítését.
Mi a különbség a cloud-init és a Linux-ügynök (WALA) között?
A WALA egy Azure-platformspecifikus ügynök, amellyel virtuális gépeket építhet ki és konfigurálhat, és Azure-bővítményeket kezelhet.
Továbbfejlesztjük a virtuális gépek Linux-ügynök helyett cloud-init használatára való konfigurálásának feladatát annak érdekében, hogy a meglévő cloud-init ügyfelek az aktuális cloud-init szkripteket használják, vagy az új ügyfelek kihasználhassák a cloud-init konfigurációs funkcióit. Ha már van befektetése a Linux-rendszerek konfigurálásához szükséges cloud-init szkriptekbe, a felhőbeli init-folyamatok engedélyezéséhez nincs szükség további beállításokra.
A cloud-init nem tudja feldolgozni az Azure-bővítményeket, ezért a WALA továbbra is szükséges a lemezképen a bővítmények feldolgozásához, de le kell tiltani a kiépítési kódját. A támogatott Linux disztribúciós rendszerképek esetében, amelyeket a cloud-init üzembe helyezésre konvertál, a WALA telepítve van, és megfelelően van beállítva.
Virtuális gép létrehozásakor, ha nem veszi fel az Azure CLI-kapcsolót --custom-data
a kiépítéskor, a cloud-init vagy a WALA a virtuális gép kiépítéséhez és az üzembe helyezés alapértelmezés szerinti végrehajtásához szükséges minimális virtuálisgép-kiépítési paramétereket veszi figyelembe. Ha a kapcsolóval hivatkozik a --custom-data
cloud-init konfigurációra, az egyéni adatokban található elemek a virtuális gép indításakor elérhetők lesznek a cloud-init számára.
A virtuális gépekre alkalmazott cloud-init konfigurációk nem rendelkeznek időkorlátokkal, és nem okozzák az üzembe helyezés meghiúsulását az időkorlát túllépésével. Ez nem igaz a WALA-ra, ha módosítja a WALA alapértelmezett értékét az egyéni adatok feldolgozására, az nem haladhatja meg a virtuális gépek üzembe helyezési idejének 40 perces teljes keretét, ha igen, a virtuális gép létrehozása sikertelen lesz.
cloud-init virtuális gép kiépítése UDF-illesztőprogram nélkül
A Cloud-init 21.2-től kezdve a cloud-init használatával UDF-illesztőprogram nélkül építhet ki virtuális gépeket az Azure-ban. Ha egy UDF-illesztő nem érhető el a képen, a cloud-init az Azure Instance Metadata Szolgáltatásban elérhető metaadatokat használja a virtuális gép kiépítéséhez. Ez a beállítás csak az SSH-kulcsok és a felhasználói adatok esetében működik. Ha a kiépítés során jelszót vagy egyéni adatokat szeretne átadni egy virtuális gépnek, UDF-illesztőt kell használnia.
Cloud-init-kompatibilis virtuális gép üzembe helyezése
A cloud-init-kompatibilis virtuális gépek üzembe helyezése olyan egyszerű, mint a cloud-init-kompatibilis disztribúcióra való hivatkozás az üzembe helyezés során. A Linux-disztribúció-karbantartóknak engedélyezniük kell és integrálniuk kell a cloud-initet az azure-beli közzétett alaprendszerképeikbe. Ha meggyőződik arról, hogy az üzembe helyezni kívánt rendszerkép engedélyezve van a cloud-init szolgáltatásban, az Azure CLI használatával telepítheti a lemezképet.
A rendszerkép üzembe helyezésének első lépése egy erőforráscsoport létrehozása az az group create paranccsal. Az Azure-erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat.
A következő példában létrehozunk egy myResourceGroup nevű erőforráscsoportot az eastus helyen.
az group create --name myResourceGroup --location eastus
A következő lépés egy fájl létrehozása az aktuális rendszerhéjban, cloud-init.txt néven, és illessze be a következő konfigurációt. Ebben a példában ne a helyi gépen, hanem a Cloud Shellben hozza létre a fájlt. Tetszőleges szerkesztőt használhat. A fájl létrehozásához és az elérhető szerkesztők listájának megtekintéséhez írja be a sensible-editor cloud-init.txt. Használja a választott szerkesztőt. Néhány tipikus választás a nano, a vim vagy a ed. Ügyeljen arra, hogy megfelelően másolja ki a teljes cloud-init-fájlt, különösen az első sort:
SLES | Ubuntu | RHEL |
---|---|---|
# cloud-config package_upgrade: true packages: - apache2 |
# cloud-config package_upgrade: true packages: - httpd |
# cloud-config package_upgrade: true packages: - httpd |
Feljegyzés
A cloud-init több bemeneti típussal rendelkezik, a cloud-init a customData/userData első sorával jelzi, hogyan kell feldolgozni a bemenetet, például #cloud-config
azt jelzi, hogy a tartalmat cloud-init konfigurációként kell feldolgozni.
Lépjen ki a fájlból, és mentse a fájlt a szerkesztő szerint. Ellenőrizze a fájl nevét a kilépéskor.
Az utolsó lépés egy virtuális gép létrehozása az az vm create paranccsal.
Az alábbi példa létrehoz egy elnevezett ubuntu2204
virtuális gépet, és SSH-kulcsokat hoz létre, ha még nem léteznek alapértelmezett kulcshelyen. Ha konkrét kulcsokat szeretné használni, használja az --ssh-key-value
beállítást. Használja a --custom-data
paramétert a cloud-init konfigurációs fájl megadásához. Adja meg a cloud-init.txt konfiguráció teljes elérési útját, ha az aktuális munkakönyvtáron kívülre mentette.
az vm create \
--resource-group myResourceGroup \
--name ubuntu2204 \
--image Canonical:UbuntuServer:22_04-lts:latest \
--custom-data cloud-init.txt \
--generate-ssh-keys
A virtuális gép létrehozásakor az Azure CLI az üzembe helyezésre vonatkozó információkat jeleníti meg. Jegyezze fel a publicIpAddress
értékét. Ez a cím használható a virtuális gép eléréséhez. A virtuális gép létrehozása, a telepítendő csomagok és az alkalmazás elindítása némi időt vesz igénybe. Néhány háttérfeladat azután is tovább fut, hogy az Azure CLI visszairányítja Önt a parancssorhoz. A virtuális gépbe SSH-t helyezhet, és a hibaelhárítási szakaszban ismertetett lépésekkel megtekintheti a felhőbeli inicializálási naplókat.
A cloud-init-kompatibilis virtuális gépet is üzembe helyezheti az ARM-sablon paramétereinek átadásával.
A cloud-init hibaelhárítása
A virtuális gép üzembe helyezése után a cloud-init a virtuális gép konfigurálásához definiált összes modulon és szkripten --custom-data
végigfut. Ha a konfiguráció hibáit vagy kihagyásait szeretné elhárítani, a modul nevét (disk_setup
vagy runcmd
például) a cloud-init naplóban kell keresnie , amely a /var/log/cloud-init.log helyen található.
Feljegyzés
Nem minden modulhiba eredményez végzetes felhőalapú konfigurációs hibát. Ha például a runcmd
modult használja, a szkript sikertelensége esetén a cloud-init továbbra is sikeres üzembe helyezést fog jelenteni a futtatott modul végrehajtása miatt.
A cloud-init naplózással kapcsolatos további információkért tekintse meg a cloud-init dokumentációját
Telemetria
A cloud-init összegyűjti a használati adatokat, és elküldi a Microsoftnak a termékeink és szolgáltatásaink javítása érdekében. A telemetriát csak a kiépítési folyamat (a virtuális gép első indítása) során gyűjti a rendszer. Az összegyűjtött adatok segítenek a kiépítési hibák kivizsgálásában, valamint a teljesítmény és a megbízhatóság monitorozásában. Az összegyűjtött adatok nem tartalmaznak azonosítókat (személyes azonosítókat). További információért olvassa el adatvédelmi nyilatkozatunkat. Az összegyűjtött telemetria néhány példája (ez nem teljes lista): operációs rendszerrel kapcsolatos információk (cloud-init verzió, disztribúciós verzió, kernelverzió), a virtuális gépek alapvető kiépítési műveleteinek teljesítménymetrikái (a DHCP-bérlet beszerzésének ideje, a virtuális gép konfigurálásához szükséges metaadatok lekérésének ideje stb.), a cloud-init napló és a dmesg-napló.
A telemetriai gyűjtemény jelenleg engedélyezve van a cloud-initet használó piactéri rendszerképek többségéhez. A felhőbeli init KVP-telemetria-riporterének megadásával engedélyezve van. A legtöbb Azure Marketplace-rendszerképben ez a konfiguráció az /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg fájlban található. A fájl képelőkészítés során történő eltávolítása letiltja a rendszerképből létrehozott virtuális gépek telemetriai gyűjteményét.
10-azure-kvp.cfg mintatartalma
reporting:
logging:
type: log
telemetry:
type: hyperv
Következő lépések
A cloud-inittel kapcsolatos problémák elhárítása.
A felhőbeli konfigurációs változásokra vonatkozó példákért tekintse meg a következő dokumentumokat: