cloud-init-támogatás az Azure-beli virtuális gépekhez

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Fontolja meg a használatát, és ennek megfelelően tervezze meg. További információ: CentOS End Of Life útmutató.

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 rendszerindításkor. 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 22.04 UbuntuServer 22.04-LTS legújabb igen igen
Canonical 20.04 UbuntuServer 20.04-LTS legújabb igen igen
Canonical 18.04 UbuntuServer 18.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.

CentOS

Publisher/Verzió Ajánlás Termékváltozat Verzió image cloud-init ready Cloud-init-csomag támogatása az Azure-ban
OpenLogic 7 CentOS 7.7, 7.8, 7.9 legújabb igen igen
OpenLogic 8 CentOS 8.1, 8.2, 8.3 legújabb igen igen
  • A CentOS 7 -től (7.7-es verzió) és a CentOS 8-tól (8.1-es verziótól) kezdődő összes többi CentOS SKU, beleértve a Gen1 és Gen2 rendszerképeket is, a cloud-init használatával vannak kiépítve. A CentOS 6.10, 7.4, 7.5 és 7.6 rendszerképek nem támogatják a felhőbeli initet.

Feljegyzés

Az OpenLogic mostantól Rogue Wave Software

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.

SU Standard kiadás 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 (SU Standard kiadás Linux Enterprise Server) sp1, sp2, sp3 legújabb igen igen
SUSE 12 SLES (SU Standard kiadás Linux Enterprise Server) sp5 legújabb igen igen
  • Az SLES 15 (sp1) és az SLES 12 (sp5) verziótól kezdődő összes többi SU Standard kiadás termékváltozat, beleértve a Gen1 és Gen2 rendszerképeket is, a cloud-init használatával van kiépítve.
  • Emellett ezek a képek a cloud-inittel is ki vannak építve –
Publisher/Verzió Ajánlás Termékváltozat /verzió
SUSE 12 SLES (SU Standard kiadás Linux Enterprise Server) sles-{byos/sap/sap-byos}:12-sp4:2020.06.10
SUSE 12 SLES (SU Standard kiadás Linux Enterprise Server) sles-{byos/sap/sap-byos}:12-sp3:2020.06.10
SUSE 12 SLES (SU Standard kiadás Linux Enterprise Server) sles-{byos/sap/sap-byos}:12-sp2:2020.06.10
SUSE 15 SLES (SU Standard kiadás Linux Enterprise Server) manager-proxy-4 byosgen1:2020.06.10
SUSE 15 SLES (SU Standard kiadás Linux Enterprise Server) manager-server-4-byos:gen1:2020.06.10

Debian

Publisher/Verzió Ajánlás Termékváltozat Verzió image cloud-init ready Cloud-init-csomag támogatása az Azure-ban
debian (Gen1) debian-10 10-cloudinit 10:0.20201013.422 igen igen – csomagverzió támogatása: 20.2-2~deb10u1
debian (Gen2) debian-10 10-cloudinit-gen2 0.20201013.422 igen igen – csomagverzió támogatása: 20.2-2~deb10u1

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 cloud-init által kiépítésre konvertált támogatott Linux disztribúciós rendszerképek esetében a WALA telepítve lesz, és megfelelően lesznek 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 okoznak meghibásodást az üzembe helyezés időzíté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. Miután meggyőződött arról, hogy az üzembe helyezni kívánt rendszerkép engedélyezve van a cloud-init szolgáltatásban, az Azure CLI-vel 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. Írja be a sensible-editor cloud-init.txt parancsot a fájl létrehozásához és az elérhető szerkesztők listájának megtekintéséhez. Ebben a példában a nanoszerkesztőt használjuk. Válassza az 1. lehetőséget a nanoszerkesztő használatához. Ü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.

Nyomja le a Ctrl + X billentyűkombinációt a fájlból való kilépéshez, írja be az y billentyűt a fájl mentéséhez, majd nyomja le az Enter billentyűt a fájlnév kilépéskor történő megerősítéséhez.

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 centos74 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 centos74 \
  --image OpenLogic:CentOS-CI:7-CI: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_setupvagy 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ásával kapcsolatos további részleteké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 legtöbb cloud-initet használó marketplace-rendszerképhez. 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: