安装脚本配置说明

如果您创建集群后需要安装自定义软件或者配置软件环境,可以设置安装脚本。集群所有节点启动并安装好自动部署的软件后,会自动下载并执行安装脚本。本文介绍安装脚本中配置参数说明。

使用场景

  • 使用系统镜像创建集群后,需要在创建集群后安装自定义软件或配置软件环境。

  • 使用自定义镜像创建集群,需要在创建集群后执行自定义脚本配置软件环境。

配置说明

创建集群时,在软件配置的高级配置中设置安装脚本。安装脚本支持包含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目录下查询日志文件。