包含自定义引导操作的示例集群 - AWS ParallelCluster

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

包含自定义引导操作的示例集群

以下步骤创建一个要在节点配置完成后执行的简单脚本,该脚本将在集群的节点中安装 R, curlwget 软件包。

  1. 创建脚本。

    #!/bin/bash echo "The script has $# arguments" for arg in "$@" do echo "arg: ${arg}" done yum -y install "${@:1}"
  2. 使用正确的权限将脚本上传到 Amazon S3。如果公共读取权限不适合您,请使用 HeadNode/Iam/S3AccessScheduling/SlurmQueues 配置部分。有关更多信息,请参阅 使用 Amazon S3

    $ aws s3 cp --acl public-read /path/to/myscript.sh s3://<amzn-s3-demo-bucket>/myscript.sh
    重要

    如果脚本是在 Windows 上编辑的,则在将脚本上传CRLF到 Amazon S3 之前,必须将行尾从更改为 LF。

  3. 更新 AWS ParallelCluster 配置以包含新OnNodeConfigured操作。

    CustomActions: OnNodeConfigured: Script: https://<amzn-s3-demo-bucket>.s3.<region>.amazonaws.com/myscript.sh Args: - "R" - "curl" - "wget"

    如果存储桶没有公共读取权限,请使用s3作为URL协议。

    CustomActions: OnNodeConfigured: Script: s3://<amzn-s3-demo-bucket>/myscript.sh Args: - "R" - "curl" - "wget"
  4. 启动集群。

    $ pcluster create-cluster --cluster-name mycluster \ --region <region> --cluster-configuration config-file.yaml
  5. 验证输出。

    • 如果您将自定义操作添加到了 HeadNode 配置中,请通过运行以下命令,登录到头节点并检查位于 /var/log/cfn-init.logcfn-init.log 文件:

      $ less /var/log/cfn-init.log 2021-09-03 10:43:54,588 [DEBUG] Command run postinstall output: The script has 3 arguments arg: R arg: curl arg: wget Loaded plugins: dkms-build-requires, priorities, update-motd, upgrade-helper Package R-3.4.1-1.52.amzn1.x86_64 already installed and latest version Package curl-7.61.1-7.91.amzn1.x86_64 already installed and latest version Package wget-1.18-4.29.amzn1.x86_64 already installed and latest version Nothing to do
    • 如果您将自定义操作添加到了 SlurmQueues 设置中,请检查位于计算节点中 /var/log/cloud-init.log 处的 cloud-init.log。用于 CloudWatch 查看这些日志。

    您可以在 Amazon CloudWatch 控制台中查看这两个日志。有关更多信息,请参阅 与 Amazon CloudWatch 日志集成