全部產品
Search
文件中心

Elastic High Performance Computing:安裝指令碼配置說明

更新時間:Jul 06, 2024

如果您建立叢集後需要安裝自訂軟體或者配置軟體環境,可以設定安裝指令碼。叢集所有節點啟動並安裝好自動部署的軟體後,會自動下載並執行安裝指令碼。本文介紹安裝指令碼中配置參數說明。

使用情境

  • 使用系統鏡像建立叢集後,需要在建立叢集後安裝自訂軟體或配置軟體環境。

  • 使用自訂鏡像建立叢集,需要在建立叢集後執行自訂指令碼配置軟體環境。

配置說明

建立叢集時,在軟體配置的進階配置中設定安裝指令碼。安裝指令碼支援包含bash、python等可以在Linux Shell環境中啟動並執行指令碼類型,指令碼第一行必須加上註解指明運行時調用的命令,例如bash指令碼第一行為#!/bin/bash

    指令碼樣本

    該指令碼樣本輸出叢集環境變數、叢集中繼資料、節點角色到/root目錄下對應的log檔案中。具體指令碼樣本下載地址,請參見下載地址

    #!/bin/bash
    
    echo "call $0 with param: $@" | tee /root/command.log
    
    
    ## show all available environment variables
    printenv | tee /root/env.log
    
    ## Cluster meta data
    echo "ClusterId: ${ClusterId}, HOSTNAME: ${HOSTNAME}" | tee /root/cluster.log
    echo "AccountType: ${AccountType}, SchedulerType: ${SchedulerType}" | tee -a /root/cluster.log
    
    ## Role of current machine
    echo "${Role}" | tee /root/role.log
    
    if [ "${isLoginNode}" == "true" ]; then
      ## Do your work on login node
      echo "This is login node" | tee -a /root/role.log
      exit $?
    fi
    
    if [ "${isAccountManager}" == "true" ]; then
      ## Do your work on NIS/LDAP master
      echo "This is account manager" | tee -a /root/role.log
      exit $?
    fi
    
    if [ "${isResourceManager}" == "true" ]; then
      ## Do your work on Slurm/PBS master
      echo "This is scheduler" | tee -a /root/role.log
      exit $?
    fi
    
    if [ "${isComputeNode}" == "true" ]; then
      ## Do your work with on compute node
      echo "This is compute node" | tee -a /root/role.log
      exit $?
    fi

    環境變數

    自訂安裝指令碼預設在叢集的所有節點上執行,您可以通過設定環境變數指定在不同類型節點上執行的操作。可用環境變數說明如下:

    變數名

    範例

    說明

    ClusterId

    ehpc-hz-AQoy7J****

    叢集ID。

    HOSTNAME

    i-bp133vs16yb3kqdj****

    主機名稱。

    AccountType

    NIS

    域帳號類型,取值範圍:

    • NIS

    • LDAP

    SchedulerType

    PBS

    調度器類型,取值範圍:

    • PBS

    • SLURM

    • GRIDENGINE

    Role

    AccountManager

    Role為單一角色名稱或者多個角色名稱以逗號分隔組成字串。即單個節點可能同時具有多種角色。取值範圍:

    • AccountManager:主域帳號管理節點

    • AccountManagerBackup:備域帳號管理節點

    • ResourceManager:主調度節點

    • ResourceManagerBackup:備調度節點

    • ComputeNode:計算節點

    • LoginNode:登入節點

    ResourceManagerIp

    192.168.**.**

    主調度節點私網IP。

    ResourceManagerHost

    scheduler000

    主調度節點主機名稱。

    AccountManagerIp

    192.168.**.**

    主域帳號管理域節點私網IP。

    AccountManagerHost

    account000

    主域帳號管理域節點主機名稱。

    ResourceManagerBackupIp

    192.168.**.**

    備調度節點私網IP(開啟HA)。

    ResourceManagerBackupHost

    scheduler001

    備調度節點主機名稱(開啟HA)。

    AccountManagerBackupIp

    192.168.**.**

    備域帳號管理節點私網IP(開啟HA)。

    AccountManagerBackupHost

    account001

    備域帳號管理節點主機名稱(開啟HA)。

    isLoginNode

    true

    是否登入節點,可選值:

    • true

    • false

    isAccountManager

    true

    是否主網域服務器,可選值:

    • true

    • false

    isResourceManager

    true

    是否主調度器,可選值:

    • true

    • false

    isAccountManagerBackup

    true

    是否備用網域服務器,可選值:

    • true

    • false

    isResourceManagerBackup

    true

    是否備用調度器,可選值:

    • true

    • false

    isComputeNode

    true

    是否計算節點,可選值:

    • true

    • false

    異常處理

    建立叢集時可能會出現異常,常見異常說明如下:

    • 如果叢集建立過程中出現異常,導致叢集建立失敗,則不會執行安裝指令碼。

    • 如果叢集建立成功,但是單個計算節點異常,則該異常節點上不會執行安裝指令碼。

    • 如果叢集建立成功,通過指令碼的傳回值判斷執行結果,傳回值約定同Shell,非0代表失敗。如果失敗,您可以在動作記錄查看警示,詳細錯誤資訊請登入叢集,在執行失敗的節點/root目錄下查詢記錄檔。