Oefening: een cloud-init-script maken voor gebruik met Azure CycleCloud

Voltooid

Wanneer u knooppunten voor een cluster inricht, wilt u mogelijk aangepaste configuratietaken uitvoeren tijdens het opstartproces van het besturingssysteem, voordat eventuele planningsgestuurde wijzigingen van kracht worden. Deze taken kunnen bijvoorbeeld het bijwerken van padomgevingsvariabelen, het configureren van DNS-naamomzettingsinstellingen (Domain Name System) of bindingsknooppunten naar een Microsoft Entra Domain Services-domein (AD DS) omvatten.

Als u deze functionaliteit wilt implementeren, besluit u het gebruik van cloud-init in Azure CycleCloud-clusters te verkennen en te testen met een eenvoudig Bash-script waarmee de inhoud van een lokaal bestand op elk knooppunt wordt gewijzigd. U wilt het resultaat valideren door verbinding te maken met clusterknooppunten en de inhoud van de gewijzigde bestanden te controleren.

Notitie

Bij het ontwerpen van cloud-init-scripts kunt u elke script- of configuratiemethode gebruiken die door het besturingssysteem op doelknooppunten kan worden herkend en verwerkt, waaronder traditionele shellscripts, Python en YAML.

In deze oefening voert u de volgende taken uit:

  • Taak 1: Verificatie op basis van SSH configureren voor Azure CycleCloud-clusterknooppunten
  • Taak 2: Een cloud-init-script toevoegen aan de clusterknooppunten
  • Taak 3: De cloud-init-functionaliteit op het scheduler-knooppunt controleren
  • Taak 4: De cloud-init-functionaliteit op de rekenknooppunten controleren
  • Taak 5: De oefeningsomgeving opschonen

Notitie

Zorg ervoor dat u de vorige oefening hebt voltooid voordat u deze oefening start.

Taak 1: Verificatie op basis van SSH configureren voor Azure CycleCloud-clusterknooppunten

Als u de uitvoering van cloud-init-scripts wilt valideren, maakt u verbinding met clusterknooppunten met Azure CycleCloud CLI vanuit Azure Cloud Shell. Deze verbinding is afhankelijk van verificatie op basis van SSH-sleutels. U moet dus de persoonlijke sleutel uploaden die overeenkomt met de openbare sleutel die is gedistribueerd naar clusterknooppunten naar de basismap van Azure Cloud Shell.

  1. Navigeer naar de Azure-portal en meld u aan als hierom wordt gevraagd met een Microsoft-account of een Microsoft Entra-account dat over de rol van Bijdrager of Eigenaar beschikt in het Azure-abonnement dat u in deze module gebruikt.

  2. Open de Cloud Shell vanuit Azure Portal door het bijbehorende pictogram in de werkbalk naast het zoekvak te selecteren en ervoor te zorgen dat u een Bash-sessie uitvoert.

  3. Selecteer in het deelvenster Azure Cloud Shell op de werkbalk van het deelvenster het vierde pictogram met een pagina met een paar verticale pijlen die in de tegenovergestelde richting wijzen. Kies vervolgens Uploaden in de vervolgkeuzelijst.

  4. Navigeer in het dialoogvenster Openen naar de locatie van het PEM-bestand met de persoonlijke sleutel en selecteer Openen.

  5. Voer de volgende opdrachten uit in Cloud Shell om het geüploade PEM-bestand naar de juiste locatie te verplaatsen en de benodigde machtigingen op bestandsniveau te configureren (vervang de <private_key.pem> tijdelijke aanduiding door de naam van het PEM-bestand ):

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

Taak 2: Een cloud-init-script toevoegen aan de clusterknooppunten

De optie voor het toevoegen van scripts aan de clusterknooppunten is rechtstreeks beschikbaar vanuit de grafische interface van Azure CycleCloud. U gebruikt het om hetzelfde cloud-init-script toe te wijzen aan de scheduler en rekenknooppunten en om de functionaliteit ervan te controleren. Het script voegt een vermelding 10.10.10.10 cc.contoso.com toe aan het bestand /etc/hosts .

  1. Als u nog niet bent verbonden met de Azure CycleCloud-webtoepassing, opent u een ander browservenster en navigeert u naar de HTTPS://< IP_address-URL> . Als u hierom wordt gevraagd, bevestigt u dat u wilt doorgaan.

  2. Als u wordt gevraagd om te verifiëren, meldt u zich aan door referenties op te geven van uw Azure CycleCloud-toepassingsgebruikersaccount met de beheerdersrol.

  3. Navigeer in de grafische interface van Azure CycleCloud naar de pagina Clusters . Selecteer in de lijst met clusters de vermelding contoso-custom-slurm-lab-cluster en selecteer Vervolgens Bewerken.

  4. Selecteer in het pop-upvenster Bewerk contoso-custom-slurm-lab-cluster, selecteer de vermelding Cloud-init en voer op het tabblad scheduler in de Cloud-init-configuratiesectie het volgende script in:

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

    Schermopname van het tabblad Cloud-init van het pop-upvenster

  5. Selecteer in hetzelfde pop-upvenster, waarbij de Cloud-init-vermelding is geselecteerd, elk van de resterende tabbladen (inclusief cuda, hpc en htc) en voer hetzelfde script in. Selecteer opslaan.

Taak 3: De cloud-init-functionaliteit op het scheduler-knooppunt controleren

Als u de cloud-init-functionaliteit op het scheduler-knooppunt wilt controleren, start u het cluster. Hierdoor wordt het inrichten van het scheduler-knooppunt geactiveerd. Nadat het knooppunt is uitgevoerd, kunt u er verbinding mee maken vanuit de Azure Cloud Shell en controleren of het bestand /etc/hosts de vermelding 10.10.10.10 www.contoso.combevat.

  1. Selecteer in het browservenster van de Azure CycleCloud-webtoepassing de koppeling Start op de pagina contoso-custom-slurm-lab-cluster. Wanneer u wordt gevraagd om te bevestigen, selecteert u OK.

    Notitie

    Als het cluster al wordt uitgevoerd, moet u het beëindigen en opnieuw starten om de bijgewerkte configuratie toe te passen, anders is deze configuratie niet zichtbaar in de volgende stappen.

  2. Selecteer in de lijst met knooppunten de Scheduler en bewaak de status ervan in het deelvenster Details totdat deze verandert van Acquiring naar Ready.

    Notitie

    Dit kan ongeveer drie minuten duren.

  3. Selecteer Verbinding maken in het deelvenster Details. Selecteer in het pop-upvenster Verbinden met knooppunt: scheduler, in de sectie Met de CycleCloud CLI, de vermelding met de opdracht waarmee u verbinding kunt maken met het scheduler-knooppunt en selecteer vervolgens Sluiten:

    Schermopname van het pop-upvenster Verbinden met knooppunt: scheduler in de Azure CycleCloud webapplicatie.

    Notitie

    De opdracht moet de indeling hebben cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster

  4. Ga naar het browservenster met het deelvenster Cloud Shell en voer de opdracht uit die u in de vorige stap hebt gekopieerd.

    Notitie

    De opdracht moet uitvoer genereren in de volgende indeling:

    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. Wanneer u bent verbonden met het scheduler-knooppunt, voert u de volgende opdracht uit om te controleren of het bestand /etc/hosts de vermelding 10.10.10.10 www.contoso.combevat:

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

    Notitie

    De opdracht moet uitvoer genereren in de volgende indeling:

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

Taak 4: De cloud-init-functionaliteit op de rekenknooppunten controleren

Nu herhaalt u de equivalente reeks stappen om de cloud-init-functionaliteit op de rekenknooppunten te verifiëren.

Belangrijk

Voordat u de equivalente procedure kunt toepassen om de cloud-init-functionaliteit op de rekenknooppunten te controleren, moet u de relevante virtuele machineschaalset verwijderen en opnieuw toewijzen. Deze stap is specifiek voor de clusters op basis van Slurm, omdat in dit geval de integratie van de scheduler voor automatische schaalaanpassing de Azure CycleCloud vereist om de rekenknooppunten vooraf in te vullen. Als gevolg hiervan heeft de cloud-init-configuratie die u eerder in deze oefening hebt toegepast, geen invloed op al bestaande knooppunten.

  1. Voer tijdens de verbinding met het scheduler-knooppunt de volgende opdrachten uit in Cloud Shell om de rekenknooppunten in uw Azure CycleCloud-cluster te verwijderen en opnieuw toe te voegen en de verbinding met het scheduler-knooppunt te beëindigen:

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

    Notitie

    U krijgt de berichten te zien waarin staat dat u probeert de volgende knooppunten te verwijderen , gevolgd door het opnieuw schalen van het cluster voltooid zodra deze stap is voltooid.

  2. Ga op uw computer naar het webbrowservenster met de pagina contoso-custom-slurm-lab-cluster van de Azure CycleCloud-webtoepassing. Selecteer op het tabblad Knooppunten de rij htc en selecteer in het deelvenster Details de vermelding htc-1 en selecteer vervolgens de koptekst van het tabblad Acties . Selecteer Start in de vervolgkeuzelijst en selecteer OK wanneer u wordt gevraagd om te bevestigen.

    Schermopname van het menu Acties op de pagina contoso-custom-slurm-lab-cluster in de Azure CycleCloud-webtoepassing.

  3. Controleer in het deelvenster Details het zojuist gestarte knooppunt en wacht totdat de status is gewijzigd van Acquire to Ready.

    Notitie

    Dit kan ongeveer drie minuten duren.

  4. Selecteer Verbinding maken in het deelvenster Details. Selecteer in het pop-upvenster Verbinding maken met knooppunt: htc-1 de vermelding in de sectie CycleCloud CLI gebruiken met de opdracht waarmee u verbinding kunt maken met het scheduler-knooppunt en selecteer Sluiten:

    Schermopname van het pop-upvenster Verbinding maken met knooppunt: htc-1 in de Azure CycleCloud-webtoepassing.

    Notitie

    De opdracht moet het formaat hebben cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster.

  5. Ga naar het deelvenster Cloud Shell en voer de opdracht uit die u in de vorige stap hebt gekopieerd.

    Notitie

    De opdracht moet uitvoer genereren in de volgende indeling:

    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. Wanneer u verbinding hebt met het htc-1-knooppunt , voert u de volgende opdracht uit om te controleren of het bestand /etc/hosts de vermelding 10.10.10.10 www.contoso.combevat:

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

    Notitie

    Verwijder alle resources die u in deze en vorige oefeningen van deze module hebt geïmplementeerd zodra u dit punt hebt bereikt. Hiermee kunt u de kosten voorkomen die zijn gekoppeld aan het onderhouden van deze resources voor uw Azure-abonnement.

Taak 5: De testomgeving opschonen

Het testen van de clusteraanpassing met behulp van de Azure CycleCloud-toepassing is voltooid. Als u onnodige kosten wilt voorkomen die zijn gekoppeld aan het gebruik van Azure-resources, beëindigt u het cluster en verwijdert u alle resources die u tijdens de oefeningen van deze module hebt ingericht.

  1. Selecteer in de webbrowser met de grafische interface van de Azure CycleCloud-webtoepassing de koppeling Beëindigen op de pagina contoso-custom-slurm-lab-cluster en selecteer OK wanneer u wordt gevraagd om te bevestigen.

  2. Bewaak het beëindigingsproces.

    Notitie

    Het proces houdt in dat de Azure-VM, die fungeert als hoofdknooppunt van het cluster, buiten gebruik wordt gesteld. Dit kan ongeveer vijf minuten duren.

    Notitie

    Als u alle andere resources wilt verwijderen die u in dit lab hebt ingericht, verwijdert u de resourcegroepen die als host fungeren voor de clusterresources.

  3. Navigeer in Azure Portal naar de blade van de resourcegroep die clusterresources host, selecteer de vermelding Resourcegroep verwijderen in de werkbalk. Voer in het tekstvak Resourcegroep invoeren om het verwijderen te bevestigen de naam van de resourcegroep in en selecteer Verwijderen. Selecteer opnieuw verwijderen om de verwijdering te bevestigen.

    Notitie

    Er zijn mogelijk extra resourcegroepen gekoppeld aan uw Slurm-resources. Als u extra kosten wilt voorkomen, moet u al deze aan Slurm gerelateerde resourcegroepen en hun resources verwijderen.

Gefeliciteerd! U hebt de derde en laatste oefening van deze module voltooid. In deze oefening hebt u het gebruik van cloud-init in Azure CycleCloud-clusters verkend en getest met een eenvoudig Bash-script waarmee de inhoud van een lokaal bestand op elk knooppunt is gewijzigd. U hebt het resultaat gevalideerd door verbinding te maken met clusterknooppunten en de inhoud van de gewijzigde bestanden te controleren. Daarna hebt u het cluster beëindigd en alle clusterbronnen verwijderd die u in deze module hebt gebruikt om onnodige kosten te voorkomen.