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