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.
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.
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.
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.
Etap konfiguracji cloud-init: na tym etapie moduły
cloud_config_modules
zdefiniowane i wymienione w/etc/cloud/cloud
pliku .cfg są uruchamiane.Etap końcowy cloud-init: na tym ostatnim etapie moduły w
cloud_final_modules
programie , wymienione w/etc/cloud/cloud.cfg
pliku , 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 uruchomieniuper-instance
— skrypty w tym katalogu są uruchamiane po pierwszym uruchomieniu nowego wystąpieniaper-once
- skrypty w tym katalogu są uruchamiane tylko raz
- Na tym etapie można uruchamiać skrypty, umieszczając je w katalogach w obszarze