Udostępnij za pośrednictwem


Szczegółowe zapoznanie się z pakietem cloud-init

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

Aby dowiedzieć się więcej na temat pakietu cloud-init lub rozwiązywania problemów na wyższym poziomie, musisz zrozumieć, jak działa. W tym dokumencie wyróżniono ważne elementy i wyjaśniono specyfikę platformy Azure.

Gdy plik cloud-init jest dołączany do uogólnionego obrazu, a maszyna wirtualna jest tworzona na podstawie tego obrazu, przetwarza konfiguracje i przechodzi przez pięć etapów podczas początkowego rozruchu. Te etapy pokazują, w jakim momencie aplikacja cloud-init stosuje jego konfiguracje.

Omówienie konfiguracji pakietu Cloud-Init

Konfigurowanie maszyny wirtualnej do uruchamiania na platformie używa pakietu cloud-init w celu zastosowania wielu konfiguracji. Główne konfiguracje, z którymi korzystasz, to User data (customData), która obsługuje wiele formatów. Aby uzyskać więcej informacji, zobacz dokumentację User-Data Formats & cloud-init 21.2. Istnieje również możliwość dodawania i uruchamiania skryptów (/var/lib/cloud/scripts) dla innych konfiguracji.

Wstępnie skonfigurowane obrazy witryny Azure Marketplace

Niektóre konfiguracje są już gotowe do obrazów witryny Azure Marketplace, które są dostarczane z rozwiązaniem cloud-init.

  • Źródło danych w chmurze — cloud-init zawiera kod, który może współdziałać z platformami w chmurze. Te kody są nazywane "źródłami danych". Po utworzeniu maszyny wirtualnej na podstawie obrazu cloud-init na platformie Azure inicjowanie w chmurze ładuje źródło danych platformy Azure, które współdziała z punktami końcowymi metadanych platformy Azure w celu uzyskania określonej konfiguracji maszyny wirtualnej.

  • Konfiguracja środowiska uruchomieniowego (/run/cloud-init).

  • Konfiguracja obrazu (/etc/cloud), na przykład /etc/cloud/cloud.cfg, /etc/cloud/cloud.cfg.d/*.cfg. Przykład użycia tej konfiguracji na platformie Azure jest typowy dla obrazów systemu operacyjnego Linux z użyciem pakietu cloud-init w celu uzyskania dyrektywy źródła danych platformy Azure, która informuje cloud-init o tym, jakiego źródła danych należy użyć, ta konfiguracja oszczędza czas cloud-init:

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

Etapy rozruchu cloud-init (konfiguracja przetwarzania)

Podczas aprowizowania maszyn wirtualnych przy użyciu pakietu cloud-init istnieje pięć etapów rozruchu konfiguracji. Dane wyjściowe z tych etapów są widoczne w dziennikach.

  1. Etap generatora: generator systemowy cloud-init uruchamia się i określa, że pakiet cloud-init powinien zostać uwzględniony w celach rozruchu, a jeśli tak, włącza pakiet cloud-init.

  2. Etap lokalny cloud-init: w tym miejscu pakiet cloud-init szuka lokalnego źródła danych "Azure", co umożliwia interfejsowi cloud-init z platformą Azure i zastosowanie konfiguracji sieciowej, w tym rezerwowej.

  3. Cloud-init init Stage (Network): Sieć powinna być w trybie online, a informacje o karcie sieciowej i tabeli tras powinny być generowane. Na tym etapie moduły wymienione w sekcji cloud_init_modules/etc/cloud/cloud.cfg są uruchamiane. Maszyna wirtualna na platformie Azure jest instalowana, dysk efemeryczny jest sformatowany, a nazwa hosta jest ustawiona wraz z innymi zadaniami.

    Poniżej przedstawiono niektóre z następujących elementów:cloud_init_modules

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

    Po tym etapie dostawca cloud-init wysyła sygnał do platformy Azure, że maszyna wirtualna została pomyślnie aprowizowana. Niektóre moduły mogły zakończyć się niepowodzeniem, jednak nie wszystkie błędy modułu automatycznie powodują niepowodzenie aprowizacji.

  4. Etap konfiguracji cloud-init: na tym etapie moduły cloud_config_modules zdefiniowane i wymienione w /etc/cloud/cloudpliku .cfg są uruchamiane.

  5. Etap końcowy cloud-init: na tym ostatnim etapie moduły w cloud_final_modulesprogramie , wymienione w /etc/cloud/cloud.cfgpliku , są uruchamiane. W tym miejscu moduły, które muszą być uruchamiane pod koniec przebiegu procesu rozruchu, takie jak instalacje pakietów i uruchamianie skryptów itp.

    • Na tym etapie można uruchamiać skrypty, umieszczając je w katalogach w obszarze /var/lib/cloud/scripts:
      • per-boot - skrypty w tym katalogu, uruchamiane przy każdym ponownym uruchomieniu
      • per-instance — skrypty w tym katalogu są uruchamiane po pierwszym uruchomieniu nowego wystąpienia
      • per-once - skrypty w tym katalogu są uruchamiane tylko raz

Następne kroki

Rozwiązywanie problemów z rozwiązaniem cloud-init.