Övning – Skapa ett cloud-init-skript för användning med Azure CycleCloud

Slutförd

När du etablerar noder för ett kluster kanske du vill kunna utföra anpassade konfigurationsuppgifter under operativsystemets startprocess innan några scheduler-drivna ändringar börjar gälla. Dessa uppgifter kan till exempel omfatta uppdatering av sökvägsmiljövariabler, konfiguration av DNS-namnmatchningsinställningar (Domain Name System) eller bindning av noder till en Ad DS-domän (Microsoft Entra Domain Services).

För att implementera den här funktionen bestämmer du dig för att utforska användningen av cloud-init i Azure CycleCloud-kluster och testa den med ett enkelt Bash-skript som ändrar innehållet i en lokal fil på varje nod. Du tänker verifiera resultatet genom att ansluta till klusternoder och granska innehållet i de ändrade filerna.

Kommentar

När du redigerar cloud-init-skript kan du använda alla skript eller konfigurationsmetoder som operativsystemet som körs på målnoder kan identifiera och bearbeta, inklusive traditionella gränssnittsskript, Python och YAML.

I den här övningen utför du följande uppgifter:

  • Uppgift 1: Konfigurera SSH-baserad autentisering till Azure CycleCloud-klusternoder
  • Uppgift 2: Lägga till ett cloud-init-skript till klusternoderna
  • Uppgift 3: Verifiera funktionen cloud-init på scheduler-noden
  • Uppgift 4: Verifiera funktionen cloud-init på beräkningsnoderna
  • Uppgift 5: Rensa träningsmiljön

Kommentar

Kontrollera att du har slutfört föregående övning innan du påbörjar den här övningen.

Uppgift 1: Konfigurera SSH-baserad autentisering till Azure CycleCloud-klusternoder

För att verifiera körningen av cloud-init-skript ansluter du till klusternoder med Azure CycleCloud CLI från Azure Cloud Shell. Den här anslutningen förlitar sig på SSH-nyckelbaserad autentisering, så du måste ladda upp den privata nyckel som motsvarar den offentliga nyckeln som distribueras till klusternoder till Azure Cloud Shell-hemkatalogen.

  1. Gå till Azure-portalen och autentisera med ett Microsoft-konto eller ett Microsoft Entra-konto som har rollen Deltagare eller Ägare i den Azure-prenumeration som du använder i den här modulen.

  2. Öppna Cloud Shell från Azure-portalen genom att välja dess ikon i verktygsfältet bredvid sökrutan och se till att du kör en Bash-session.

  3. I fönstret Azure Cloud Shell i fönstrets verktygsfält väljer du den fjärde ikonen som visar en sida med ett par lodräta pilar som pekar i motsatt riktning. Välj sedan Ladda upp i den nedrullningsbara menyn.

  4. I dialogrutan Öppna navigerar du till platsen för .pem-filen som innehåller den privata nyckeln och väljer Öppna.

  5. Kör följande kommandon i Cloud Shell för att flytta den uppladdade .pem-filen till rätt plats och konfigurera nödvändiga behörigheter på filnivå (ersätt <private_key.pem> platshållaren med namnet på .pem-filen ):

    mkdir -p ~/.ssh
    mv private_key.pem ~/.ssh
    chmod 600 ~/.ssh/cc-ssh-keys.pem
    

Uppgift 2: Lägga till ett cloud-init-skript till klusternoderna

Alternativet för att lägga till skript till klusternoderna är tillgängligt direkt från det grafiska gränssnittet Azure CycleCloud. Du använder det för att tilldela samma cloud-init-skript till schemaläggaren och beräkningsnoderna och verifiera dess funktioner. Skriptet lägger till en post 10.10.10.10 cc.contoso.com till filen /etc/hosts .

  1. Om du ännu inte är ansluten till Azure CycleCloud-webbprogrammet öppnar du ett annat webbläsarfönster och navigerar till https://< IP_address-URL> :en. Bekräfta att du vill fortsätta om du uppmanas att göra det.

  2. Om du uppmanas att autentisera loggar du in genom att ange autentiseringsuppgifter för ditt Azure CycleCloud-programanvändarkonto med rollen Administratör.

  3. I det grafiska Gränssnittet Azure CycleCloud går du till sidan Kluster . I listan över kluster väljer du posten contoso-custom-slurm-lab-cluster och väljer sedan Redigera.

  4. I popup-fönstret Redigera contoso-custom-slurm-lab-cluster väljer du posten Cloud-init och anger följande skript på fliken scheduler i avsnittet Cloud-init configuration (Moln-init-konfiguration):

    #!/bin/bash
    echo "10.10.10.10 www.contoso.com" >> /etc/hosts
    

    Screenshot of the Cloud-init tab of the Edit contoso-custom-slurm-lab-cluster pop-up window in the Azure CycleCloud web application.

  5. I samma popup-fönster, med posten Cloud-init markerad, väljer du var och en av de återstående flikarna (inklusive cuda, hpc och htc) och anger samma skript. Välj Spara.

Uppgift 3: Verifiera funktionen cloud-init på scheduler-noden

Om du vill verifiera funktionen cloud-init på scheduler-noden startar du klustret. Detta utlöser etablering av scheduler-noden. När noden har körts kan du ansluta till den från Azure Cloud Shell och kontrollera att filen /etc/hosts innehåller posten 10.10.10.10.10 www.contoso.com.

  1. I webbläsarfönstret som visar Azure CycleCloud-webbprogrammet väljer du startlänkenpå sidan contoso-custom-slurm-lab-cluster. När du uppmanas att bekräfta väljer du OK.

    Kommentar

    Om klustret redan körs måste du avsluta och starta om det för att tillämpa den uppdaterade konfigurationen, annars visas inte konfigurationen i efterföljande steg.

  2. I listan med noder väljer du posten Scheduler och övervakar dess status i fönstret Information och väntar tills den ändras från Hämta till Klar.

    Kommentar

    Det kan ta ungefär tre minuter.

  3. I fönstret Information väljer du Anslut. I popup-fönstret Anslut till nod: scheduler går du till avsnittet Använda CycleCloud CLI och väljer posten som innehåller kommandot så att du kan ansluta till scheduler-noden och välja Stäng:

    Screenshot of the Connect to node: scheduler pop-up window in the Azure CycleCloud web application.

    Kommentar

    Kommandot ska ha formatet cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster

  4. Växla till webbläsarfönstret med Cloud Shell-fönstret och kör kommandot som du kopierade i föregående steg.

    Kommentar

    Kommandot ska generera utdata i följande format:

    m@Azure:~$ cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster
    Connecting to cc-admin@40.87.52.25 (contoso-custom-slurm-lab-cluster scheduler) using SSH
    [cc-admin@ip-0A000304 ~]$
    
  5. När du är ansluten till scheduler-noden kör du följande kommando för att kontrollera att filen /etc/hosts innehåller posten 10.10.10.10.10 www.contoso.com:

    grep "10.10.10.10 www.contoso.com" /etc/hosts
    

    Kommentar

    Kommandot ska generera utdata i följande format:

    [cc-admin@ip-0A000304 ~]$ grep "10.10.10.10 www.contoso.com" /etc/hosts
    10.10.10.10 www.contoso.com
    

Uppgift 4: Verifiera funktionen cloud-init på beräkningsnoderna

Nu ska du upprepa motsvarande sekvens med steg för att verifiera funktionen cloud-init på beräkningsnoderna.

Viktigt!

Innan du kan använda motsvarande procedur för att verifiera funktionen cloud-init på beräkningsnoderna måste du ta bort och omallokera motsvarande VM-skalningsuppsättning. Det här steget är specifikt för De Slurm-baserade klustren eftersom i det här fallet kräver autoskalningsintegrering av schemaläggaren Azure CycleCloud för att fylla i beräkningsnoderna i förväg. Därför påverkar inte den cloud-init-konfiguration som du använde tidigare i den här övningen redan befintliga noder.

  1. När du är ansluten till scheduler-noden kör du följande kommandon i Cloud Shell för att ta bort och omallokera beräkningsnoderna i ditt Azure CycleCloud-kluster och avsluta anslutningen till scheduler-noden:

    sudo -i
    cd /opt/cycle/jetpack/system/bootstrap/slurm
    ./cyclecloud_slurm.sh remove_nodes
    ./cyclecloud_slurm.sh scale
    exit
    exit
    

    Kommentar

    Du får meddelanden om att försöka ta bort följande noder följt av omskalningsklusterslutförs när det här steget har slutförts.

  2. Växla till webbläsarfönstret på datorn och visa sidan contoso-custom-slurm-lab-cluster i Azure CycleCloud-webbprogrammet. På fliken Noder väljer du raden htc och i fönstret Information väljer du posten htc-1 och väljer sedan fliken Åtgärder. I den nedrullningsbara menyn väljer du Start och väljer OK när du uppmanas att bekräfta.

    Screenshot of the Actions menu on the contoso-custom-slurm-lab-cluster page in the Azure CycleCloud web application.

  3. I fönstret Information övervakar du den nyligen startade noden och väntar tills dess status ändras från Hämta till Klar.

    Kommentar

    Det kan ta ungefär tre minuter.

  4. I fönstret Information väljer du Anslut. I popup-fönstret Anslut till nod: htc-1 väljer du posten i avsnittet Använda CycleCloud CLI som innehåller kommandot så att du kan ansluta till scheduler-noden och välja Stäng:

    Screenshot of the Connect to node: htc-1 pop-up window in the Azure CycleCloud web application.

    Kommentar

    Kommandot ska ha formatet cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster.

  5. Växla till Cloud Shell-fönstret och kör kommandot som du kopierade i föregående steg.

    Kommentar

    Kommandot ska generera utdata i följande format:

    m@Azure:~$ cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster
    Connecting to cc-admin@10.0.3.5 (contoso-custom-slurm-lab-cluster htc-1) through SSH bastion at cc-admin@40.87.52.25
    [cc-admin@ip-0A000305 ~]$
    
  6. När du är ansluten till noden htc-1 kör du följande kommando för att kontrollera att filen /etc/hosts innehåller posten 10.10.10.10.10 www.contoso.com:

    cat /etc/hosts | grep "10.10.10.10 www.contoso.com"
    

    Kommentar

    Du bör ta bort alla resurser som du har distribuerat i den här och tidigare övningar i den här modulen när du når den här punkten. På så sätt kan du undvika de avgifter som är associerade med att underhålla dessa resurser mot din Azure-prenumeration.

Uppgift 5: Rensa labbmiljön

Din testning av klusteranpassningen med hjälp av Azure CycleCloud-programmet har slutförts. För att undvika onödiga kostnader som är kopplade till användningen av Azure-resurser avslutar du nu klustret och tar bort alla resurser som du har etablerat under övningarna i den här modulen.

  1. I webbläsaren som visar det grafiska gränssnittet för Azure CycleCloud-webbprogrammet väljer du länken Avslutasidan contoso-custom-slurm-lab-cluster och väljer OK när du uppmanas att bekräfta.

  2. Övervaka avslutningsprocessen.

    Kommentar

    Processen omfattar avetablering av den virtuella Azure-datorn som hanterar rollen för klustrets huvudnod. Det kan ta ungefär fem minuter.

    Kommentar

    Om du vill ta bort alla andra resurser som du har etablerat i den här labbuppgiften tar du bort de resursgrupper som är värdar för klusterresurserna.

  3. I Azure-portalen går du till bladet för resursgruppen som är värd för klusterresurser och väljer posten Ta bort resursgrupp i verktygsfältet. I textrutan Ange resursgruppnamn för att bekräfta borttagning anger du namnet på resursgruppen och väljer Ta bort. Välj Ta bort igen för att bekräfta borttagningen.

    Kommentar

    Det kan finnas ytterligare resursgrupper som är associerade med dina Slurm-resurser. Undvik extra avgifter genom att ta bort alla dessa Slurm-relaterade resursgrupper och deras resurser.

Klar! Du har slutfört den tredje och sista övningen i den här modulen. I den här övningen utforskade du användningen av cloud-init i Azure CycleCloud-kluster och testade den med ett enkelt Bash-skript som ändrade innehållet i en lokal fil på varje nod. Du verifierade resultatet genom att ansluta till klusternoder och granska innehållet i de ändrade filerna. Efteråt avslutade du klustret och tog bort alla klusterresurser som du använde i den här modulen för att undvika onödiga kostnader.