通过后处理脚本自定义部署扩容的计算节点

设置后处理脚本后,E-HPC集群上后续扩容的节点均会自动执行指定的后处理脚本,可以满足计算节点预部署的需求。通过后处理脚本,您可以对计算节点做定制化操作,例如扩容的计算节点自动挂载ossfs、自动部署软件环境等。本文以自动挂载ossfs为例,介绍如何设置后处理脚本。

背景信息

设置后处理脚本有以下两种方式:

  • 创建集群时,可在软件配置页的安装后执行脚本区域,设置后处理脚本。

  • 集群运行后,可通过OpenAPI配置和获取后处理脚本。

说明

创建集群时设置的后处理脚本对集群内所有节点生效,集群运行后设置的后处理脚本仅对集群新扩容的节点有效,集群内原有节点不生效。

前提条件

  1. 已创建E-HPC集群。具体操作,请参见使用向导创建集群

    本文以集群运行后设置后处理脚本为例,如果您还未创建E-HPC集群,可在创建集群时直接设置后处理脚本。

  2. 已创建OSS Bucket,用于存放ossfs包和后处理脚本。具体操作,请参见创建存储空间

步骤一:下载并配置ossfs

  1. 下载ossfs包。

    下载地址请参见ossfs快速安装

  2. 将ossfs包上传到您的OSS Bucket。

    具体操作,请参见简单上传。上传时,文件ACK请设置为公共读,以便后处理脚本可以访问获取,上传后,请在文件详情页记录ossfs包的私网下载地址,例如https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ossfs_1.80.6_centos7.0_x86_64.rpm

  3. 设置ossfs账号。

    1. 登录E-HPC集群。

    2. 将账号信息写入账号配置文件。

      您需要将实际账号信息(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
      说明
    3. 修改账号配置文件的权限。

      操作后,需要将/home/passwd-ossfs文件权限设置为600,命令如下:

      chmod 600 /home/passwd-ossfs

步骤二:编写并上传后处理脚本

  1. 编写后处理脚本。

    处理脚本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的配置,请参见高级配置

  2. 将后处理脚本上传到OSS Bucket。

    具体操作,请参见简单上传。上传时,文件ACK请设置为公共读,以便集群可以访问获取。上传后,请在文件详情页记录后处理脚本的私网下载地址,例如https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ehpcMountOss.sh

步骤三:使用OpenAPI设置集群后处理脚本

  1. 登录OpenAPI开发者门户

  2. 调用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

    后处理脚本的私网下载地址。

  3. 调用GetPostScripts接口查看后处理脚本。

    要填写的参数如下,更多信息,请参见GetPostScripts

    参数名称

    示例值

    说明

    RegionId

    cn-shanghai

    集群所属地域。

    ClusterId

    ehpc-sh-R1X01h****

    集群ID。

步骤四:扩容集群测试后处理脚本效果

  1. 扩容集群。具体操作,请参见手动扩容集群

  2. 登录扩容后的计算节点,确认ossfs挂载情况。

    登录后执行df -h命令,可以看到扩容的节点已自动执行后处理脚本,挂载了ossfs。预期返回如下:

    后处理脚本2