Anpassa programvaruinstallationer

Slutförd

Med Azure CycleCloud-mallar kan du konfigurera HPC-kluster genom att abstrahera implementeringsinformation för den underliggande infrastrukturen så att du kan fokusera på arbetsbelastningshantering. Den arbetsbelastningen har dock vanligtvis flera programvarurelaterade beroenden, vilket kräver ytterligare anpassningssteg. Lyckligtvis tillhandahåller Azure CycleCloud också ett ramverk för att implementera de här stegen via dess stöd för etablerings- och konfigurationshanteringsuppgifter som tillämpas direkt på klusternoder.

Dina mål omfattar behovet av att distribuera anpassade avbildningar och använda interna utvecklade konfigurationsskript som du har använt i din lokala HPC-miljö. Du vill ta reda på hur du kan använda Azure CycleCloud-funktionerna för att uppnå dessa mål.

Hur implementerar jag konfigurationshantering med Azure CycleCloud?

Azure CycleCloud erbjuder tre huvudsakliga metoder som du kan kombinera på ett godtyckligt sätt för att anpassa operativsystem och programvara på klusternoder enligt dina egna krav eller inställningar:

  • Anpassade avbildningar
  • Projekt
  • Cloud-init

Hur använder jag anpassade avbildningar med Azure CycleCloud?

Azure CycleCloud stöder klusternoder som kör de vanligaste Linux-distributionerna och, beroende på schemaläggaren, Windows Server. De inbyggda mallarna är förkonfigurerade med de rekommenderade standardvärdena, men du kan välja Azure Marketplace-avbildningar eller etablera noder baserat på anpassade avbildningar. Det senare alternativet kan vara att föredra om du vill minimera fördröjningen i samband med installationen efter distributionen av operativsystemet och eventuella ytterligare beroenden av dina HPC-arbetsbelastningar. Det kan också krävas för att uppfylla affärs-, säkerhets- eller efterlevnadsbehov.

Med anpassade avbildningar kan du ha fullständig kontroll över den förinstallerade programvaran och den inledande operativsystemkonfigurationen. Deras främsta nackdel är de kostnader som är förknippade med att underhålla flera bilder för att hantera olika kombinationer av program och deras versioner, särskilt i utvecklingsscenarier.

Hur använder jag Azure CycleCloud-projekt för programvaruinstallation?

Ett Azure CycleCloud-projekt är en samling filer som du refererar till när du definierar konfigurationer av klusternoder via mallar. Projekten har följande katalogstruktur:

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

Filen project.ini innehåller projektets metadata, inklusive dess namn, etikett, version och typ. De typer som stöds är schemaläggaren och programmet. Den första används för att installera och initiera scheduler-daemoner på huvudnoder och beräkningsnoder, medan den senare definierar klusterarbetsbelastningar.

Blobkatalogen innehåller projektblobar, till exempel binära filer för ett projekt med öppen källkod som kan distribueras fritt och användarblobar, som måste undantas från omdistributionen av projektet på grund av licensbegränsningar.

Mallkatalogen innehåller mallar, medan specifikationskatalogen är värd för specifikationer som definierar konfigurationer som ska tillämpas på målklusternoder.

Kommentar

Till exempel innehåller ett Slurm-projekt minst två specifikationer: en för scheduler-huvudnoderna och den andra för beräkningsnoderna.

I katalogen specs finns det två underkataloger med namnet cluster-init och custom Chef. Cluster-init innehåller skript som körs automatiskt på målnoden. Rådatafiler som kopieras till målnoden och tester som körs när ett kluster startas i testläget. Den anpassade chef-underkatalogen innehåller Chef-specifika filer, inklusive cookbook-, data bag-och rolldefinitionsfiler. Du kan använda Chef-kokböcker och recept för att konfigurera noder. Kluster-init-specifikationer mappar till Chef-roller och kokböcker.

Kommentar

Azure CycleCloud använder Chef som konfigurationshanteringsverktyg för att förbereda och konfigurera varje nod. CycleCloud använder Chef i ett fristående läge som inte förlitar sig på en centraliserad Chef-server. I stället laddas alla kokböcker som är avsedda för de hanterade klusternoderna ned från skåpet under startfasen för operativsystemet. Vid den tidpunkten bearbetar Chef listan över recept som definierats i nodens kluster-init-specifikationer, vilket effektivt konverterar den underliggande virtuella datorn till en fungerande HPC-nod.

Om du vill etablera ett kluster baserat på ett projekt måste du ladda upp projektets innehåll till ett Azure CycleCloud-skåp. Sedan, när målnoden startar, laddar den automatiskt ned de projektfiler som krävs från skåpet och bearbetar de nödvändiga specifikationerna.

Hur använder du cloud-init med Azure CycleCloud?

Azure CycleCloud stöder cloud-init som ett sätt att konfigurera klusternoder under startfasen innan projektrelaterade specifikationer tillämpas. Det här är en praktisk metod för att hantera alla infrastruktur- eller programvarurelaterade beroenden, till exempel att konfigurera nätverksinställningar eller tillämpa uppdateringar av operativsystempaket.

Du kan definiera cloud-init-konfiguration med hjälp av en mall, men du kan också göra detta direkt från det grafiska Gränssnittet i Azure CycleCloud. När du skapar eller redigerar ett kluster hittar du relevanta inställningar på fliken Cloud-Init, där du kan ange skripten för varje nodtyp.

Kommentar

Eftersom cloud-init körs före några CycleCloud-projektspecifikationer kan schemaläggaren och konfigurationen som Azure CycleCloud tillämpar på en nod skriva över ändringar som görs via cloud-init. Om du behöver se till att dina kommandon körs när schemaläggaren har installerats bör du använda Azure CycleCloud-projektspecifikationer i stället.