如果您建立叢集後需要安裝自訂軟體或者配置軟體環境,可以設定安裝指令碼。叢集所有節點啟動並安裝好自動部署的軟體後,會自動下載並執行安裝指令碼。本文介紹安裝指令碼中配置參數說明。
使用情境
使用系統鏡像建立叢集後,需要在建立叢集後安裝自訂軟體或配置軟體環境。
使用自訂鏡像建立叢集,需要在建立叢集後執行自訂指令碼配置軟體環境。
配置說明
建立叢集時,在軟體配置的進階配置中設定安裝指令碼。安裝指令碼支援包含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 | 域帳號類型,取值範圍:
|
SchedulerType | PBS | 調度器類型,取值範圍:
|
Role | AccountManager | Role為單一角色名稱或者多個角色名稱以逗號分隔組成字串。即單個節點可能同時具有多種角色。取值範圍:
|
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 | 是否登入節點,可選值:
|
isAccountManager | true | 是否主網域服務器,可選值:
|
isResourceManager | true | 是否主調度器,可選值:
|
isAccountManagerBackup | true | 是否備用網域服務器,可選值:
|
isResourceManagerBackup | true | 是否備用調度器,可選值:
|
isComputeNode | true | 是否計算節點,可選值:
|
異常處理
建立叢集時可能會出現異常,常見異常說明如下:
如果叢集建立過程中出現異常,導致叢集建立失敗,則不會執行安裝指令碼。
如果叢集建立成功,但是單個計算節點異常,則該異常節點上不會執行安裝指令碼。
如果叢集建立成功,通過指令碼的傳回值判斷執行結果,傳回值約定同Shell,非0代表失敗。如果失敗,您可以在動作記錄查看警示,詳細錯誤資訊請登入叢集,在執行失敗的節點/root目錄下查詢記錄檔。