Cvičení – vytvoření skriptu cloud-init pro použití s Azure CycleCloudem
Při zřizování uzlů clusteru můžete být schopni provádět vlastní úlohy konfigurace během procesu spouštění operačního systému, než se projeví všechny změny řízené plánovačem. Mezi tyto úlohy patří například aktualizace proměnných prostředí PATH, konfigurace nastavení překladu názvů DNS (Domain Name System) nebo připojení uzlů k doménové službě Microsoft Entra Domain Services (AD DS).
Pokud chcete tuto funkci implementovat, rozhodnete se prozkoumat použití cloud-init v clusterech Azure CycleCloud a otestovat ji pomocí jednoduchého skriptu Bash, který upraví obsah místního souboru na každém uzlu. Chcete ověřit výsledek připojením k uzlům clusteru a kontrolou obsahu upravených souborů.
Poznámka
Při vytváření skriptů cloud-init můžete použít jakoukoli metodu skriptování nebo konfigurace, kterou může operační systém spuštěný na cílových uzlech rozpoznat a zpracovat, včetně tradičního skriptování prostředí, Pythonu a YAML.
V tomto cvičení provedete následující úlohy:
- Úloha 1: Konfigurace ověřování založeného na SSH na uzlech clusteru Azure CycleCloud
- Úloha 2: Přidání skriptu cloud-init do uzlů clusteru
- Úloha 3: Ověření funkčnosti cloud-init v uzlu plánovače
- Úloha 4: Ověření funkčnosti cloud-init na výpočetních uzlech
- Úkol 5: Vyčištění prostředí cvičení
Poznámka
Před zahájením tohoto cvičení se ujistěte, že jste úspěšně dokončili předchozí cvičení.
Úloha 1: Konfigurace ověřování založeného na SSH na uzlech clusteru Azure CycleCloud
Pokud chcete ověřit spouštění skriptů cloud-init, připojíte se k uzlům clusteru pomocí Azure CycleCloud CLI z Azure Cloud Shellu. Toto připojení spoléhá na ověřování založené na klíči SSH, takže budete muset nahrát privátní klíč odpovídající veřejnému klíči distribuovanému do uzlů clusteru do domovského adresáře Azure Cloud Shellu.
Přejděte na web Azure Portal a po zobrazení výzvy se ověřte pomocí účtu Microsoft nebo účtu Microsoft Entra s rolí Přispěvatel nebo Vlastník v předplatném Azure, které používáte v tomto modulu.
Na webu Azure Portal otevřete Cloud Shell tak, že na panelu nástrojů vedle vyhledávacího pole vyberete její ikonu a ověříte, že spouštíte relaci Bash.
V podokně Azure Cloud Shell na panelu nástrojů podokna vyberte čtvrtou ikonu zobrazující stránku s dvojicí svislých šipek směřujících v opačných směrech. Potom v rozevírací nabídce vyberte Nahrát.
V dialogovém okně Otevřít přejděte do umístění souboru .pem obsahujícího privátní klíč a vyberte Otevřít.
Spuštěním následujících příkazů v Cloud Shellu přesuňte nahraný soubor .pem do správného umístění a nakonfigurujte potřebná oprávnění na úrovni souboru (zástupný symbol nahraďte
<private_key.pem>názvem souboru .pem ):mkdir -p ~/.ssh mv private_key.pem ~/.ssh chmod 600 ~/.ssh/cc-ssh-keys.pem
Úloha 2: Přidání skriptu cloud-init do uzlů clusteru
Možnost přidání skriptů do uzlů clusteru je dostupná přímo z grafického rozhraní Azure CycleCloud. Použijete ho k přiřazení stejného skriptu cloud-init plánovači a výpočetním uzlům a ověření jeho funkčnosti. Skript přidá položku 10.10.10.10 cc.contoso.com do souboru /etc/hosts .
Pokud ještě nejste připojení k webové aplikaci Azure CycleCloud, otevřete další okno prohlížeče a přejděte na adresu URL https://< IP_address> . Pokud se zobrazí výzva, potvrďte, že chcete pokračovat.
Pokud se zobrazí výzva k ověření, přihlaste se zadáním přihlašovacích údajů uživatelského účtu aplikace Azure CycleCloud s rolí Správce.
V grafickém rozhraní Azure CycleCloud přejděte na stránku Clusters . V seznamu clusterů vyberte položku contoso-custom-slurm-lab-cluster a pak vyberte Upravit.
Ve vyskakovacím okně Upravit contoso-custom-slurm-lab-cluster vyberte položku Cloud-init a na kartě plánovač v části konfigurace Cloud-init zadejte následující skript:
#!/bin/bash echo "10.10.10.10 www.contoso.com" >> /etc/hosts
Ve stejném automaticky otevíraném okně, s vybranou položkou Cloud-init, vyberte každou z dalších karet (včetně cuda, hpca htc) a zadejte stejný skript. Vyberte Uložit.
Úloha 3: Ověření funkčnosti cloud-init v uzlu plánovače
Pokud chcete ověřit funkčnost cloud-init v uzlu plánovače, spustíte cluster. Tím se iniciuje zřizování uzlu plánovače. Po spuštění uzlu se k němu budete moct připojit z Azure Cloud Shellu a ověřit, že soubor /etc/hosts obsahuje položku 10.10.10.10 www.contoso.com.
V okně prohlížeče, které zobrazuje webovou aplikaci Azure CycleCloud, vyberte odkaz Spustit na stránce clusteru contoso-custom-slurm-lab. Po zobrazení výzvy k potvrzení vyberte OK.
Poznámka
Pokud je cluster již spuštěný, budete ho muset ukončit a restartovat, aby se použila aktualizovaná konfigurace, jinak se tato konfigurace v následujících krocích nezobrazí.
V seznamu uzlů vyberte položku Scheduler a v podokně Podrobnosti monitorujte její stav a počkejte, než se změní z Získání na Připraveno.
Poznámka
Může to trvat asi tři minuty.
V podokně Podrobnosti vyberte Připojit. V okně Připojení k uzlu: plánovač v části Použití rozhraní příkazového řádku CycleCloud vyberte položku obsahující příkaz, který vám umožní připojit se k uzlu plánovače, a poté vyberte Zavřít:
Poznámka
Příkaz by měl mít formát
cyclecloud connect scheduler -c contoso-custom-slurm-lab-clusterPřepněte do okna webového prohlížeče s podoknem Cloud Shell a spusťte příkaz, který jste zkopírovali v předchozím kroku.
Poznámka
Příkaz by měl generovat výstup v následujícím formátu:
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 ~]$Pokud jste připojení k uzlu plánovače, spuštěním následujícího příkazu ověřte, že soubor /etc/hosts obsahuje položku 10.10.10.10
www.contoso.com:grep "10.10.10.10 www.contoso.com" /etc/hostsPoznámka
Příkaz by měl generovat výstup v následujícím formátu:
[cc-admin@ip-0A000304 ~]$ grep "10.10.10.10 www.contoso.com" /etc/hosts 10.10.10.10 www.contoso.com
Úloha 4: Ověření funkčnosti cloud-init na výpočetních uzlech
Teď zopakujete ekvivalentní posloupnost kroků, abyste ověřili funkčnost cloud-init na výpočetních uzlech.
Důležitý
Než budete moct použít ekvivalentní postup k ověření funkčnosti cloud-init na výpočetních uzlech, musíte odebrat a relokovat odpovídající škálovací sadu virtuálních počítačů. Tento krok je specifický pro clustery založené na slurmu, protože v tomto případě integrace automatického škálování plánovače vyžaduje, aby služba Azure CycleCloud předem naplňuje výpočetní uzly. V důsledku toho by konfigurace cloud-init, kterou jste použili dříve v tomto cvičení, neovlivní již existující uzly.
Během připojení k uzlu plánovače spusťte v Cloud Shellu následující příkazy, které odeberou a přeloží výpočetní uzly v clusteru Azure CycleCloud a ukončí připojení k uzlu plánovače:
sudo -i cd /opt/cycle/jetpack/system/bootstrap/slurm ./cyclecloud_slurm.sh remove_nodes ./cyclecloud_slurm.sh scale exit exitPoznámka
Budete informováni zprávami oznamujícími Pokus o odebrání následujících uzlů, následovanými dokončením opětovného škálování clusteru, jakmile bude tento krok dokončen.
Na počítači přepněte do okna webového prohlížeče zobrazující stránku contoso-custom-slurm-lab-cluster webové aplikace Azure CycleCloud. Na kartě Uzly vyberte řádek htc, v podokně Podrobnosti vyberte položku htc-1, a následně vyberte záhlaví karty Akce. V rozevírací nabídce vyberte Start a po zobrazení výzvy k potvrzení vyberte OK .
V podokně Podrobností monitorujte nově spuštěný uzel a počkejte, až se změní stav Získávání na Připraveno.
Poznámka
Může to trvat asi tři minuty.
V podokně Podrobnosti vyberte Připojit. Ve vyskakovacím okně Připojit k uzlu: htc-1 vyberte položku v sekci Pomocí rozhraní příkazového řádku CycleCloud obsahující příkaz pro připojení k uzlu plánovače a klikněte na Zavřít.
Poznámka
Příkaz by měl mít formát
cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster.Přepněte do podokna Cloud Shell a spusťte příkaz, který jste zkopírovali v předchozím kroku.
Poznámka
Příkaz by měl generovat výstup v následujícím formátu:
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 ~]$Pokud jste připojení k uzlu htc-1 , spuštěním následujícího příkazu ověřte, že soubor /etc/hosts obsahuje položku 10.10.10.10
www.contoso.com:cat /etc/hosts | grep "10.10.10.10 www.contoso.com"Poznámka
Po dosažení tohoto bodu byste měli odstranit všechny prostředky, které jste nasadili v tomto a předchozím cvičení tohoto modulu. To vám umožní vyhnout se poplatkům spojeným s údržbou těchto prostředků vůči vašemu předplatnému Azure.
Úloha 5: Vyčištění testovacího prostředí
Testování přizpůsobení clusteru pomocí aplikace Azure CycleCloud je dokončené. Abyste se vyhnuli zbytečným nákladům spojeným s používáním prostředků Azure, ukončíte cluster a odeberete všechny prostředky, které jste zřídili v průběhu cvičení tohoto modulu.
Ve webovém prohlížeči zobrazující grafické rozhraní webové aplikace Azure CycleCloud vyberte odkaz Ukončit na stránce contoso-custom-slurm-lab-cluster a po zobrazení výzvy k potvrzení vyberte OK.
Monitorujte proces ukončení.
Poznámka
Tento proces zahrnuje odebrání virtuálního počítače Azure, který plní roli hlavního uzlu clusteru. Může to trvat asi pět minut.
Poznámka
Pokud chcete odstranit všechny ostatní prostředky, které jste v tomto cvičení zřídili, odstraníte skupiny prostředků hostující prostředky clusteru.
Na webu Azure Portal přejděte do okna skupiny prostředků hostující prostředky clusteru a na panelu nástrojů vyberte položku Odstranit skupinu prostředků . Do textového pole Zadejte název skupiny prostředků k potvrzení odstranění, zadejte název skupiny prostředků a vyberte Odstranit. Vyberte znovu Odstranit pro potvrzení odstranění.
Poznámka
K vašim prostředkům Slurm můžou být přidružené další skupiny prostředků. Abyste se vyhnuli dodatečným poplatkům, ujistěte se, že odstraníte všechny tyto skupiny prostředků související se Slurm a jejich prostředky.
Blahopřejeme! Úspěšně jste dokončili třetí a poslední cvičení tohoto modulu. V tomto cvičení jste prozkoumali použití cloud-init v clusterech Azure CycleCloud a otestovali jste ho jednoduchým skriptem Bash, který upravil obsah místního souboru na každém uzlu. Výsledek jste ověřili připojením k uzlům clusteru a kontrolou obsahu upravených souborů. Poté jste cluster ukončili a odstranili všechny prostředky clusteru, které jste použili v tomto modulu, abyste se vyhnuli zbytečným nákladům.