如果您创建集群后需要安装自定义软件或者配置软件环境,可以设置安装脚本。集群所有节点启动并安装好自动部署的软件后,会自动下载并执行安装脚本。本文介绍安装脚本中配置参数说明。
使用场景
使用系统镜像创建集群后,需要在创建集群后安装自定义软件或配置软件环境。
使用自定义镜像创建集群,需要在创建集群后执行自定义脚本配置软件环境。
配置说明
创建集群时,在软件配置的高级配置中设置安装脚本。安装脚本支持包含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目录下查询日志文件。