Oefening: een cloud-init-script maken voor gebruik met Azure CycleCloud
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.
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.
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.
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.
Navigeer in het dialoogvenster Openen naar de locatie van het PEM-bestand met de persoonlijke sleutel en selecteer Openen.
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 .
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.
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.
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.
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
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.
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.
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.
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:
Notitie
De opdracht moet de indeling hebben
cyclecloud connect scheduler -c contoso-custom-slurm-lab-clusterGa 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 ~]$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/hostsNotitie
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.
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 exitNotitie
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.
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.
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.
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:
Notitie
De opdracht moet het formaat hebben
cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster.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 ~]$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.
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.
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.
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.