Gyakorlat – Cloud-init szkript létrehozása az Azure CycleCloudhoz való használatra

Befejeződött

Fürt csomópontjainak kiépítésekor érdemes lehet olyan egyéni konfigurációs feladatokat végrehajtani, amelyeket az operációs rendszer rendszerindítási folyamata során lehet elvégezni, még mielőtt bármilyen ütemező által vezérelt módosítás életbe lépne. Ezek a feladatok közé tartozhatnak például az elérési út környezeti változóinak frissítése, a tartománynévrendszer (DNS) névfeloldási beállításainak konfigurálása, vagy a csomópontok Microsoft Entra Domain Services-tartományhoz (AD DS) való kötése.

A funkció implementálásához úgy dönt, hogy megvizsgálja a cloud-init használatát az Azure CycleCloud-fürtökben, és teszteli azt egy egyszerű Bash-szkripttel, amely módosítja az egyes csomópontokon található helyi fájlok tartalmát. Az eredményt a fürtcsomópontokhoz való csatlakozással és a módosított fájlok tartalmának áttekintésével kívánja ellenőrizni.

Jegyzet

A cloud-init szkriptek létrehozásakor bármilyen szkriptelési vagy konfigurációs módszert használhat, amelyet a célcsomópontokon futó operációs rendszer képes felismerni és feldolgozni, beleértve a hagyományos rendszerhéj-szkriptelést, a Pythont és a YAML-t.

Ebben a gyakorlatban a következő feladatokat fogja elvégezni:

  • 1. feladat: SSH-alapú hitelesítés konfigurálása az Azure CycleCloud-fürtcsomópontokon
  • 2. feladat: Cloud-init szkript hozzáadása a fürtcsomópontokhoz
  • 3. feladat: A cloud-init funkció ellenőrzése az ütemező csomóponton
  • 4. feladat: A cloud-init funkció ellenőrzése a számítási csomópontokon
  • 5. feladat: A gyakorlatkörnyezet megtisztítása

Jegyzet

A gyakorlat megkezdése előtt győződjön meg arról, hogy sikeresen végrehajtotta az előző gyakorlatot.

1. feladat: SSH-alapú hitelesítés konfigurálása az Azure CycleCloud-fürtcsomópontokon

A cloud-init szkriptek végrehajtásának ellenőrzéséhez az Azure Cloud Shellből csatlakozik majd a fürtcsomópontokhoz az Azure CycleCloud CLI-vel. Ez a kapcsolat SSH-kulcsalapú hitelesítésre támaszkodik, ezért fel kell töltenie a fürtcsomópontokra elosztott nyilvános kulcsnak megfelelő titkos kulcsot az Azure Cloud Shell kezdőlapjára.

  1. Nyissa meg az Azure portált, és amikor megkérdezik, hitelesítsen egy Microsoft-fiókkal vagy egy Microsoft Entra-fiókkal, amely közreműködői vagy tulajdonosi szerepkörrel rendelkezik az ebben a modulban használt Azure-előfizetésben.

  2. Az Azure Portalon nyissa meg a Cloud Shell a keresőmező melletti eszköztár ikonjának kiválasztásával, és győződjön meg arról, hogy Bash-munkamenetet futtat.

  3. Az Azure Cloud Shell panel eszköztárán válassza ki a negyedik ikont, amely egy oldalt jelenít meg, és az ellenkező irányba mutató függőleges nyílpár látható. Ezután a legördülő menüben válassza a Feltöltéslehetőséget.

  4. A Megnyitás párbeszédpanelen keresse meg a titkos kulcsot tartalmazó .pem fájl helyét, és válassza a Megnyitáslehetőséget.

  5. Futtassa a következő parancsokat a Cloud Shellben a feltöltött .pem fájl megfelelő helyre való áthelyezéséhez és a szükséges fájlszintű engedélyek konfigurálásához (cserélje le a <private_key.pem> helyőrzőt a .pem fájl nevére):

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

2. feladat: Cloud-init szkript hozzáadása a fürtcsomópontokhoz

A szkriptek fürtcsomópontokhoz való hozzáadásának lehetősége közvetlenül az Azure CycleCloud grafikus felületéről érhető el. Ezzel ugyanazt a cloud-init szkriptet rendeli hozzá az ütemezőhöz és a számítási csomópontokhoz, és ellenőrzi annak működését. A szkript hozzáad egy bejegyzést 10.10.10.10 cc.contoso.com a /etc/hosts fájlhoz.

  1. Ha még nem csatlakozik az Azure CycleCloud-webalkalmazáshoz, nyisson meg egy másik böngészőablakot, és keresse meg a https://<IP_address> URL-címet. Ha a rendszer kéri, ellenőrizze, hogy folytatja-e a műveletet.

  2. Ha a rendszer hitelesítést kér, jelentkezzen be az Azure CycleCloud-alkalmazás felhasználói fiókjának hitelesítő adatainak rendszergazdai szerepkörrel való megadásával.

  3. Az Azure CycleCloud grafikus felületén lépjen a Fürtök lapra. A fürtök listájában válassza a contoso-custom-slurm-lab-cluster bejegyzést, majd válassza a Szerkesztéslehetőséget.

  4. A Edit contoso-custom-slurm-lab-cluster előugró ablakban válassza ki a Cloud-init bejegyzést, és a Cloud-init konfigurációs szakaszban található ütemező lapon adja meg a következő szkriptet:

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

    Képernyőkép az Azure CycleCloud webalkalmazásban a Cloud-init lapról a Contoso-custom-slurm-lab-cluster szerkesztési előugró ablakában.

  5. Ugyanabban az előugró ablakban, amelyben a Cloud-init bejegyzés van kiválasztva, jelölje ki a többi lapot (beleértve cuda, hpcés htc) és írja be ugyanazt a szkriptet. Válassza Mentéslehetőséget.

3. feladat: A cloud-init funkció ellenőrzése az ütemező csomóponton

A cloud-init funkciójának az ütemező csomóponton való ellenőrzéséhez indítsa el a klasztert. Ez elindítja az ütemező csomópont telepítését. A csomópont futtatása után csatlakozhat hozzá az Azure Cloud Shellből, és ellenőrizheti, hogy a /etc/hosts fájl tartalmazza-e a 10.10.10.10 www.contoso.combejegyzést.

  1. Az Azure CycleCloud-webalkalmazást megjelenítő böngészőablakban válassza a Start hivatkozást a contoso-custom-slurm-lab-cluster lapon. Amikor a rendszer megerősítést kér, válassza OKlehetőséget.

    Jegyzet

    Ha a fürt már fut, le kell állítania és újra kell indítania ahhoz, hogy az új konfiguráció érvényesüljön, ellenkező esetben az új beállítások nem lesznek láthatóak a következő lépésekben.

  2. A csomópontok listájában válassza ki a Ütemező bejegyzést, és kövesse nyomon annak állapotát a Részletek panelen, várva, amíg az Beszerzés állapotról Készállapotra nem változik.

    Jegyzet

    Ez körülbelül három percet is igénybe vehet.

  3. A Részletek panelen válassza a Csatlakozáslehetőséget. A Csatlakozás csomóponthoz: ütemező előugró ablakban, a A CycleCloud CLI szakaszában válassza ki azt a bejegyzést, amely tartalmazza a parancsot, amely lehetővé teszi, hogy csatlakozzon az ütemező csomóponthoz, majd válassza a Bezáráslehetőséget.

    A Csatlakozás csomóponthoz: ütemező előugró ablak képernyőképe az Azure CycleCloud webalkalmazásban.

    Jegyzet

    A parancsnak a cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster formátumot kell követnie.

  4. Váltson a webböngésző ablakára a Cloud Shell panellel, és futtassa az előző lépésben másolt parancsot.

    Jegyzet

    A parancsnak a következő formátumban kell kimenetet létrehoznia:

    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. Amikor csatlakozik az ütemező csomóponthoz, futtassa a következő parancsot annak ellenőrzéséhez, hogy a /etc/hosts fájl tartalmazza-e a 10.10.10.10 www.contoso.combejegyzést:

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

    Jegyzet

    A parancsnak a következő formátumban kell kimenetet létrehoznia:

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

4. feladat: A cloud-init funkció ellenőrzése a számítási csomópontokon

Most megismétli az egyenértékű lépések sorozatát a számítási csomópontok felhőalapú init funkciójának ellenőrzéséhez.

Fontos

Ahhoz, hogy az egyenértékű eljárást alkalmazza a számítási csomópontok cloud-init funkciójának ellenőrzéséhez, el kell távolítania és újra kell helyeznie a megfelelő virtuálisgép-méretezési csoportot. Ez a lépés a Slurm-alapú fürtökre vonatkozik, mert ebben az esetben az ütemező automatikus skálázási integrációja megköveteli, hogy az Azure CycleCloud előre feltöltse a számítási csomópontokat. Ennek eredményeképpen a gyakorlatban korábban alkalmazott cloud-init konfiguráció nem érinti a már meglévő csomópontokat.

  1. Miközben csatlakozik az ütemező csomóponthoz, futtassa az alábbi parancsokat a Cloud Shellben az Azure CycleCloud-fürt számítási csomópontjainak eltávolításához és újraelosztásához, és állítsa le a kapcsolatot az ütemező csomóponttal:

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

    Jegyzet

    A következő üzenetek fognak megjelenni: A következő csomópontok eltávolításának kísérlete folyamatban, majd a fürt újraskálázása befejeződött, miután ez a lépés befejeződött.

  2. A számítógépen váltson a böngészőablakra, amely megjeleníti az Azure CycleCloud-webalkalmazás contoso-custom-slurm-lab-cluster oldalát. A Csomópontok lapon válassza ki a htc sort, majd a Részletek panelen válassza a htc-1 bejegyzést, majd válassza a Műveletek lapfejlécet. A legördülő menüben válassza a Startlehetőséget, majd válassza OK lehetőséget, amikor a rendszer megerősítést kér.

    Képernyőkép a Contoso-custom-slurm-lab-cluster oldal Műveletek menüjéről az Azure CycleCloud webalkalmazásban.

  3. A Részletek panelen figyelje az újonnan elindított csomópontot, és várja meg, amíg a csomópont állapota megváltozik Beszerzése állapotról Készállapotra.

    Jegyzet

    Ez körülbelül három percet is igénybe vehet.

  4. A Részletek panelen válassza a Csatlakozáslehetőséget. A Csatlakozás a csomóponthoz: htc-1 előugró ablakban válassza ki a bejegyzést a A CycleCloud CLI szakasz használatával, amely lehetővé teszi, hogy csatlakozzon az ütemező csomóponthoz, és válassza a bezárása:

    Képernyőkép a Csatlakozás csomóponthoz: htc-1 előugró ablak az Azure CycleCloud webalkalmazásban.

    Jegyzet

    A parancs formátumának cyclecloud connect htc-1 -c contoso-custom-slurm-lab-clusterkell lennie.

  5. Váltson a Cloud Shell panelre, és futtassa az előző lépésben másolt parancsot.

    Jegyzet

    A parancsnak a következő formátumban kell kimenetet létrehoznia:

    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. Amikor csatlakozik a htc-1 csomóponthoz, futtassa a következő parancsot annak ellenőrzéséhez, hogy a /etc/hosts fájl tartalmazza-e a 10.10.10.10 www.contoso.combejegyzést:

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

    Jegyzet

    A pont elérése után törölnie kell az ebben és a modul korábbi gyakorlataiban üzembe helyezett összes erőforrást. Ez lehetővé teszi, hogy elkerülje az erőforrások Azure-előfizetésen való fenntartásával kapcsolatos díjakat.

5. feladat: A laborkörnyezet megtisztítása

Az Azure CycleCloud alkalmazással végzett fürt testreszabásának tesztelése befejeződött. Az Azure-erőforrások használatához kapcsolódó szükségtelen költségek elkerülése érdekében most leállítja a fürtöt, és eltávolítja a modul gyakorlatai során kiosztott összes erőforrást.

  1. Az Azure CycleCloud-webalkalmazás grafikus felületét megjelenítő webböngészőben válassza a contoso-custom-slurm-lab-cluster lapon található Leállítás hivatkozást, és amikor a rendszer megerősítést kér, válassza OKlehetőséget.

  2. A lezárás folyamatának figyelése.

    Jegyzet

    A folyamat magában foglalja a fürt fő csomópontja szerepét ellátó Azure VM visszavonását. Ez körülbelül öt percet is igénybe vehet.

    Jegyzet

    A laborban kiépített összes többi erőforrás törléséhez törölnie kell a fürterőforrásokat üzemeltető erőforráscsoportokat.

  3. Az Azure portálon lépjen a fürterőforrásokat üzemeltető erőforráscsoport panelére, és válassza az eszköztáron a Erőforráscsoport törlése bejegyzést. Az erőforráscsoport nevének törlésének megerősítéséhez írja be az erőforráscsoport nevét a szövegmezőbe, majd válassza a Törléslehetőséget. A törlés megerősítéséhez válassza újra a Törlés lehetőséget.

    Jegyzet

    A Slurm-erőforrásokhoz további erőforráscsoportok is tartozhatnak. A többletköltségek elkerülése érdekében mindenképpen törölje ezeket a Slurm-hoz kapcsolódó erőforráscsoportokat és azok erőforrásait.

Gratulálok! Sikeresen elvégezte a modul harmadik és egyben utolsó gyakorlatát. Ebben a gyakorlatban megvizsgálta a cloud-init használatát az Azure CycleCloud klaszterekben, és tesztelte egy egyszerű Bash szkripttel, amely módosította az egyes csomópontokon található helyi fájlok tartalmát. A fürtcsomópontokhoz való csatlakozással és a módosított fájlok tartalmának áttekintésével érvényesítette az eredményt. Ezt követően megszüntette a klasztert, és törölte az összes, a modulban használt klasztererőforrást a szükségtelen költségek elkerülése érdekében.