Sdílet prostřednictvím


Cloud-init podrobně

Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️

Pokud chcete získat další informace o cloud-init nebo řešení potíží na hlubší úrovni, musíte pochopit, jak funguje. Tento dokument zvýrazňuje důležité části a vysvětluje specifika Azure.

Pokud je cloud-init součástí generalizované image a z této image se vytvoří virtuální počítač, zpracuje konfigurace a během počátečního spuštění prochází pěti fázemi. Tyto fáze ukazují, v jakém okamžiku cloud-init používá jeho konfigurace.

Principy konfigurace Cloud-Init

Konfigurace virtuálního počítače tak, aby běžela na platformě, používá cloud-init k použití více konfigurací. Hlavní konfigurace, se kterými pracujete, je User data (customData), která podporuje více formátů. Další informace naleznete v dokumentaci k uživatelským datovým formátům a cloud-init 21.2. Máte také možnost přidávat a spouštět skripty (/var/lib/cloud/scripts) pro další konfiguraci.

Předkonfigurované image Azure Marketplace

Některé konfigurace jsou už pečené do imagí Azure Marketplace, které jsou součástí cloud-init.

  • Cloudový zdroj dat – cloud-init obsahuje kód, který může pracovat s cloudovými platformami, tyto kódy se nazývají "zdroje dat". Když se virtuální počítač vytvoří z image cloud-init v Azure, cloud-init načte zdroj dat Azure, který komunikuje s koncovými body metadat Azure, aby získal konkrétní konfiguraci virtuálního počítače.

  • Konfigurace modulu runtime (/run/cloud-init)

  • Konfigurace image (/etc/cloud), například /etc/cloud/cloud.cfg, /etc/cloud/cloud.cfg.d/*.cfg. Příkladem použití této konfigurace v Azure je běžné, že image operačního systému Linux s cloud-init mají direktivu zdroje dat Azure, která říká cloud-init, jaký zdroj dat by měl používat, tato konfigurace šetří čas cloud-init:

    sudo cat /etc/cloud/cloud.cfg.d/90_dpkg.cfg
    
    # to update this file, run dpkg-reconfigure cloud-init
    datasource_list: [ Azure ]
    

Fáze spouštění cloud-init (konfigurace zpracování)

Při zřizování virtuálních počítačů pomocí cloud-init existuje pět fází spouštění konfigurace. Výstup z těchto fází je viditelný v protokolech.

  1. Fáze generátoru: Spustí se systémový generátor cloud-init a určí, že cloud-init by měl být zahrnut do cílů spouštění, a pokud ano, umožní cloud-init.

  2. Místní fáze cloud-init: Cloud-init hledá místní zdroj dat "Azure", který umožňuje cloud-init pro rozhraní s Azure, a použije konfiguraci sítě, včetně náhradní lokality.

  3. Inicializační fáze cloud-init (síť): Sítě by měly být online a měly by se vygenerovat informace o síťové kartě a směrovací tabulce. V této fázi se spustí moduly uvedené v cloud_init_modules /etc/cloud/cloud.cfg této fázi. Virtuální počítač v Azure se připojí, dočasný disk se naformátuje, název hostitele se nastaví spolu s dalšími úlohami.

    Tady jsou některé z těchto:cloud_init_modules

    - migrator
    - seed_random
    - bootcmd
    - write-files
    - growpart
    - resizefs
    - disk_setup
    - mounts
    - set_hostname
    - update_hostname
    - ssh
    

    Po této fázi cloud-init odešle signál do platformy Azure, že se virtuální počítač úspěšně zřídil. Některé moduly pravděpodobně selhaly, ale ne všechny chyby modulů automaticky způsobí selhání zřizování.

  4. Fáze konfigurace cloud-init: V této fázi se moduly cloud_config_modules definované a uvedené v /etc/cloud/cloud.cfg spustí.

  5. Konečná fáze cloud-init: V této závěrečné fázi se moduly v cloud_final_modulesseznamu , uvedené v /etc/cloud/cloud.cfg, spouští. Tady moduly, které je potřeba spustit pozdě ve spuštění procesu spouštění, jako jsou instalace balíčků a spouštění skriptů atd.

    • Během této fáze můžete skripty spustit tak, že je umístíte do adresářů /var/lib/cloud/scriptspod:
      • per-boot – skripty v tomto adresáři, spouštěné při každém restartování
      • per-instance – skripty v tomto adresáři se spustí při prvním spuštění nové instance.
      • per-once – skripty v tomto adresáři se spouštějí jenom jednou.

Další kroky

Řešení potíží s cloud-init