Dostosowywanie instalacji oprogramowania

Ukończone

Szablony usługi Azure CycleCloud ułatwiają konfigurowanie klastrów HPC przez abstrakcję szczegółów implementacji podstawowej infrastruktury, co pozwala skupić się na zarządzaniu obciążeniami. Jednak to obciążenie zwykle ma kilka zależności związanych z oprogramowaniem, które wymagają dodatkowych kroków dostosowywania. Na szczęście usługa Azure CycleCloud udostępnia również platformę do implementowania tych kroków dzięki obsłudze zadań aprowizacji i zarządzania konfiguracją stosowanych bezpośrednio do węzłów klastra.

Twoje cele obejmują potrzebę wdrażania niestandardowych obrazów oraz używania skryptów konfiguracji opracowanych wewnętrznie, które stosujesz w lokalnym środowisku HPC. Chcesz określić, w jaki sposób można użyć funkcji usługi Azure CycleCloud do osiągnięcia tych celów.

Jak zaimplementować zarządzanie konfiguracją za pomocą usługi Azure CycleCloud?

Usługa Azure CycleCloud oferuje trzy główne metody, które można połączyć w dowolny sposób, aby dostosować system operacyjny i oprogramowanie w węzłach klastra zgodnie z własnymi wymaganiami lub preferencjami:

  • Obrazy niestandardowe
  • Projekty
  • Cloud-init

Jak używać obrazów niestandardowych w usłudze Azure CycleCloud?

Usługa Azure CycleCloud obsługuje węzły klastra z najczęściej używanymi dystrybucjami systemu Linux i, w zależności od harmonogramu, systemu Windows Server. Wbudowane szablony są wstępnie skonfigurowane z zalecanymi wartościami domyślnymi, ale możesz wybrać obrazy z Azure Marketplace lub udostępniać węzły na podstawie obrazów niestandardowych. Ta ostatnia opcja może być preferowana, jeśli chcesz zminimalizować opóźnienia związane z konfiguracją po wdrożeniu systemu operacyjnego i wszelkimi dodatkowymi zależnościami obciążeń HPC. Może być również wymagane spełnienie wymagań biznesowych, bezpieczeństwa lub zgodności.

Obrazy niestandardowe umożliwiają pełną kontrolę nad wstępnie zainstalowanym oprogramowaniem i początkową konfiguracją systemu operacyjnego. Ich podstawową wadą jest obciążenie związane z utrzymywaniem wielu obrazów w celu uwzględnienia różnych kombinacji aplikacji i ich wersji, szczególnie w scenariuszach programistycznych.

Jak używać projektów Usługi Azure CycleCloud do instalacji oprogramowania?

Projekt Azure CycleCloud to kolekcja plików, do których odwołujesz się podczas definiowania konfiguracji węzłów klastra za pomocą szablonów. Projekty mają następującą strukturę katalogów:

\project
      |- project.ini
      |- blobs
      |- templates
      |- specs
      |      | 
      |    default
      |      |- cluster-init
      |            |- scripts
      |            |- files
      |            |- tests
      |      | - chef
      |            |- site-cookbooks
      |            |- data_bag
      |            |- roles

Plik project.ini zawiera metadane projektu, w tym jego nazwę, etykietę, wersję i typ. Obsługiwane typy obejmują harmonogram i aplikację. Pierwszy służy do instalowania i inicjowania demonów harmonogramu w węzłach głównych i węzłach obliczeniowych, podczas gdy ten ostatni definiuje obciążenia klastra.

Katalog obiektów blob zawiera obiekty blob projektu, takie jak pliki binarne dla projektu typu open source, który może być swobodnie redystrybuowany, oraz obiekty blob użytkownika, które muszą zostać wykluczone z redystrybucji projektu z powodu ograniczeń licencjonowania.

Katalog templates zawiera szablony, podczas gdy katalog specyfikacji hostuje specyfikacje definiujące konfiguracje, które mają być stosowane do węzłów klastra docelowego.

Notatka

Na przykład projekt Slurm zawiera co najmniej dwie specyfikacje: jedną dla węzłów głównych harmonogramu i drugą dla węzłów obliczeniowych.

W katalogu specyfikacji istnieją dwa podkatalogi o nazwie cluster-init i dostosowany Chef. Klaster-init zawiera skrypty uruchamiane automatycznie w węźle docelowym. Nieprzetworzone pliki danych skopiowane do węzła docelowego i testy, które będą uruchamiane po uruchomieniu klastra w trybie testowania. Niestandardowy podkatalog Chef zawiera pliki specyficzne dla Chef, w tym książki kucharskie, worki danych i pliki definiujące role. Do konfigurowania węzłów można użyć książek kucharzy i przepisów chef. Specyfikacja inicjowania klastra odnosi się do ról i katalogów Chef.

Notatka

Usługa Azure CycleCloud używa narzędzia Chef jako narzędzia do zarządzania konfiguracją do przygotowywania i konfigurowania każdego węzła. Usługa CycleCloud używa programu Chef w trybie autonomicznym, który nie opiera się na scentralizowanym serwerze Chef. Zamiast tego wszystkie skrypty przeznaczone dla zarządzanych węzłów klastra są pobierane z zasobnika podczas fazy startu systemu operacyjnego. W tym momencie program Chef przetwarza listę przepisów zdefiniowanych w specyfikacjach inicjacji klastra węzła, co efektywnie przekształca podstawową maszynę wirtualną w działający węzeł HPC.

Aby aprowizować klaster na podstawie projektu, należy przekazać zawartość projektu do skrytki Azure CycleCloud. Następnie, przy uruchomieniu węzła docelowego, automatycznie pobiera wymagane pliki projektu z lokera i przetwarza wymagane specyfikacje.

Jak używać pakietu cloud-init w usłudze Azure CycleCloud?

Usługa Azure CycleCloud obsługuje inicjowanie chmury jako sposób konfigurowania węzłów klastra w fazie rozruchu przed zastosowaniem specyfikacji związanych z projektem. Zapewnia to wygodną metodę rozwiązywania problemów z dowolną infrastrukturą lub zależnościami związanymi z oprogramowaniem, takimi jak konfigurowanie ustawień sieciowych lub stosowanie aktualizacji pakietów systemu operacyjnego.

Konfigurację pakietu cloud-init można zdefiniować przy użyciu szablonu, ale można to zrobić również bezpośrednio z interfejsu graficznego usługi Azure CycleCloud. Podczas tworzenia lub edytowania klastra odpowiednie ustawienia znajdują się na karcie z etykietą Cloud-Init, gdzie można wprowadzić skrypty dla każdego typu węzła.

Notatka

Ponieważ skrypt cloud-init jest uruchamiany przed wszelkimi specyfikacjami projektu CycleCloud, harmonogram i konfiguracja, które są stosowane do węzła przez usługę Azure CycleCloud, mogą zastąpić zmiany wprowadzone za pośrednictwem pakietu cloud-init. Jeśli musisz upewnić się, że polecenia są uruchamiane po zainstalowaniu harmonogramu, powinieneś użyć specyfikacji projektu Azure CycleCloud.