Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ą, kiedy cloud-init stosuje swoje konfiguracje.
Omówienie konfiguracji Cloud-Init
Konfiguracja maszyny wirtualnej na platformie używa cloud-init do 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 Formaty i 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 Azure Marketplace
Niektóre konfiguracje są już zawarte w obrazach Azure Marketplace dostarczanych 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, cloud-init ładuje źródło danych platformy Azure, który współdziała z punktami końcowymi metadanych platformy Azure w celu uzyskania specyficznej 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 to częste występowanie obrazów systemu operacyjnego Linux z pakietem cloud-init, które zawierają dyrektywę źródła danych Azure. Ta dyrektywa informuje cloud-init, z jakiego źródła danych należy skorzystać, co pozwala zaoszczędzić 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: Na tym etapie cloud-init szuka lokalnego źródła danych "Azure", które umożliwia cloud-init współpracę z Azure i zastosowanie konfiguracji sieciowej, w tym zapewniającej tryb awaryjny.
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 uruchamiane są moduły wymienione w
cloud_init_modules
, w ramach/etc/cloud/cloud.cfg
. 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 poniższych 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: Moduły wymienione w
/etc/cloud/cloud.cfg
wcloud_final_modules
uruchamiają się na tym etapie końcowym. 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
-
- Na tym etapie można uruchamiać skrypty, umieszczając je w katalogach w obszarze