設定後處理指令碼後,E-HPC叢集上後續擴容的節點均會自動執行指定的後處理指令碼,可以滿足計算節點預部署的需求。通過後處理指令碼,您可以對計算節點做定製化操作,例如擴容的計算節點自動掛載ossfs、自動部署軟體環境等。本文以自動掛載ossfs為例,介紹如何設定後處理指令碼。
背景資訊
設定後處理指令碼有以下兩種方式:
建立叢集時,可在軟體配置頁的安裝後執行指令碼地區,設定後處理指令碼。
叢集運行後,可通過OpenAPI配置和擷取後處理指令碼。
調用SetPostScripts介面設定後處理指令碼。
調用GetPostScripts介面擷取後處理指令碼。
建立叢集時設定的後處理指令碼對叢集內所有節點生效,叢集運行後設定的後處理指令碼僅對叢集新擴容的節點有效,叢集內原有節點不生效。
前提條件
步驟一:下載並配置ossfs
下載ossfs包。
下載地址請參見ossfs快速安裝。
將ossfs包上傳到您的OSS Bucket。
具體操作,請參見簡單上傳。上傳時,檔案ACK請設定為公用讀取,以便後處理指令碼可以訪問擷取,上傳後,請在檔案詳情頁記錄ossfs包的私網下載地址,例如
https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ossfs_1.80.6_centos7.0_x86_64.rpm。設定ossfs帳號。
登入E-HPC叢集。
將帳號資訊寫入帳號設定檔。
您需要將實際帳號資訊(AccessKey ID和AccessKey Secret)按照
$bucket_name:$access_key_id:$access_key_secret的格式寫入到叢集的/home/passwd-ossfs共用儲存中,該檔案路徑將作為參數用於後處理指令碼。命令如下:echo "$bucket_name:$access_key_id:$access_key_secret" > /home/passwd-ossfs說明關於如何建立AccessKey ID和AccessKey Secret,請參見建立AccessKey。
該操作涉及AccessKey,請注意防泄漏。相關安全建議,請參見AK和賬密防泄漏最佳實務。
修改帳號設定檔的許可權。
操作後,需要將
/home/passwd-ossfs檔案使用權限設定為600,命令如下:chmod 600 /home/passwd-ossfs
步驟二:編寫並上傳後處理指令碼
編寫後處理指令碼。
處理指令碼ehpcMountOss.sh的內容樣本如下,請根據實際情況填寫OssFsConfPath、OssFsUrl和OssEndpoint的值,並替換。
重要後處理指令碼執行錯誤可能會導致節點異常,請確保指令碼內容編寫正確。更多資訊,請參見指令碼配置說明。
#!/bin/bash # 配置您的帳號設定檔路徑 OssFsConfPath="/home/passwd-ossfs" # 配置您的ossfs包私網下載地址 OssFsUrl="https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ossfs_1.80.6_centos7.0_x86_64.rpm" # 配置您的OSS 私網Endpoint OssEndpoint="http://oss-cn-shanghai-internal.aliyuncs.com" wget ${OssFsUrl} yum install -y ossfs_1.80.6_centos7.0_x86_64.rpm rm -rf ossfs_1.80.6_centos7.0_x86_64.rpm echo ${BucketName}:${AccessKeyId}:${AccessKeySecret} > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs mkdir /tmp/ossfs ossfs ${BucketName} /tmp/ossfs -opasswd_file=${OssFsConfPath} -ourl=${OssEndpoint} -oallow_other樣本指令碼中包含了ossfs的掛載步驟,更多關於ossfs的配置,請參見進階配置。
將後處理指令碼上傳到OSS Bucket。
具體操作,請參見簡單上傳。上傳時,檔案ACK請設定為公用讀取,以便叢集可以訪問擷取。上傳後,請在檔案詳情頁記錄後處理指令碼的私網下載地址,例如
https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ehpcMountOss.sh。
步驟三:使用OpenAPI設定叢集後處理指令碼
調用SetPostScripts介面設定後處理指令碼。
說明如果您的叢集之前設定過後處理指令碼(指令碼預設存放在
/opt/ehpc_user_scripts路徑下),請先登入叢集,執行rm -rf命令刪除已有指令碼。要填寫的參數如下,更多資訊,請參見SetPostScripts。
參數名稱
樣本值
說明
RegionId
cn-shanghai
叢集所屬地區。
ClusterId
ehpc-sh-R1X01h****
叢集ID。
PostInstallScripts.0.Url
https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ehpcMountOss.sh
後處理指令碼的私網下載地址。
調用GetPostScripts介面查看後處理指令碼。
要填寫的參數如下,更多資訊,請參見GetPostScripts。
參數名稱
樣本值
說明
RegionId
cn-shanghai
叢集所屬地區。
ClusterId
ehpc-sh-R1X01h****
叢集ID。
步驟四:擴容叢集測試後處理指令碼效果
擴容叢集。具體操作,請參見手動擴容叢集。
登入擴容後的計算節點,確認ossfs掛載情況。
登入後執行
df -h命令,可以看到擴容的節點已自動執行後處理指令碼,掛載了ossfs。預期返回如下: