Dela via


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.

  1. 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.

  2. 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.

  3. 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.

  4. Cloud-init Config Stage: I det här skedet körs modulerna i cloud_config_modules definierade och listade i /etc/cloud/cloud.cfg.

  5. 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 omstart
      • per-instance – skript i den här katalogen körs när en ny instans startas först
      • per-once – skript i den här katalogen körs bara en gång

Nästa steg

Felsöka cloud-init.