Fördjupa dig i cloud-init
Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️
Om du vill veta mer om cloud-init eller felsöka det på en djupare nivå måste du förstå hur det fungerar. Det här dokumentet visar viktiga delar och förklarar Azure-detaljerna.
När cloud-init ingår i en generaliserad avbildning och en virtuell dator skapas från avbildningen bearbetar den konfigurationer och går igenom fem steg under den första starten. De här stegen visar när cloud-init tillämpar sina konfigurationer.
Förstå Cloud-Init-konfiguration
När du konfigurerar en virtuell dator för att köras på en plattform används cloud-init för att tillämpa flera konfigurationer. De viktigaste konfigurationerna du interagerar med är User data
(customData), som stöder flera format. Mer information finns i dokumentationen om användardataformat och cloud-init 21.2. Du kan också lägga till och köra skript (/var/lib/cloud/scripts) för annan konfiguration.
Förkonfigurerade Azure Marketplace-avbildningar
Vissa konfigurationer har redan bakats in i Azure Marketplace-avbildningar som medföljer cloud-init.
Molndatakälla – cloud-init innehåller kod som kan interagera med molnplattformar, dessa koder kallas "datakällor". När en virtuell dator skapas från en cloud-init-avbildning i Azure läser cloud-init in Azure-datakällan, som interagerar med Azure-metadataslutpunkterna för att hämta den vm-specifika konfigurationen.
Runtime-konfiguration (/run/cloud-init).
Bildkonfiguration (/etc/moln), till exempel
/etc/cloud/cloud.cfg
,/etc/cloud/cloud.cfg.d/*.cfg
. Ett exempel på var den här konfigurationen används i Azure, det är vanligt att Linux OS-avbildningarna med cloud-init har ett Azure-datasource-direktiv som talar om för cloud-init vilken datakälla den ska använda, den här konfigurationen sparar moln-init-tid:sudo cat /etc/cloud/cloud.cfg.d/90_dpkg.cfg
# to update this file, run dpkg-reconfigure cloud-init datasource_list: [ Azure ]
Cloud-init-startsteg (bearbetningskonfiguration)
När du etablerar virtuella datorer med cloud-init finns det fem konfigurationsstartsteg. Utdata från dessa steg visas i loggarna.
Generatorsteg: Systemgeneratorn cloud-init startar och avgör att cloud-init ska ingå i startmålen, och i så fall möjliggör den cloud-init.
Lokalt molninitsteg: Här söker cloud-init efter den lokala "Azure"-datakällan, som gör att cloud-init kan samverka med Azure och tillämpa en nätverkskonfiguration, inklusive återställning.
Cloud-init init Stage (Network): Nätverk ska vara online och informationen om nätverkskortet och routningstabellen ska genereras. I det här skedet körs modulerna som anges i
cloud_init_modules
i/etc/cloud/cloud.cfg
. Den virtuella datorn i Azure är monterad, den tillfälliga disken är formaterad, värdnamnet anges tillsammans med andra uppgifter.Följande är några av följande
cloud_init_modules
:- migrator - seed_random - bootcmd - write-files - growpart - resizefs - disk_setup - mounts - set_hostname - update_hostname - ssh
Efter det här steget skickar cloud-init en signal till Azure-plattformen om att den virtuella datorn har etablerats korrekt. Vissa moduler kan ha misslyckats, men alla modulfel resulterar inte automatiskt i ett etableringsfel.
Cloud-init Config Stage: I det här skedet körs modulerna i
cloud_config_modules
definierade och listade i/etc/cloud/cloud
.cfg.Moln-init-slutsteg: I det här sista steget körs modulerna i
cloud_final_modules
, som anges i/etc/cloud/cloud.cfg
, . Här körs moduler som måste köras sent i startprocessen, till exempel paketinstallationer och körningsskript osv.- Under den här fasen kan du köra skript genom att placera dem i katalogerna under
/var/lib/cloud/scripts
:per-boot
– skript i den här katalogen, kör vid varje omstartper-instance
– skript i den här katalogen körs när en ny instans startas förstper-once
– skript i den här katalogen körs bara en gång
- Under den här fasen kan du köra skript genom att placera dem i katalogerna under