

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

# 包含自定义引导操作的示例集群
<a name="custom-bootstrap-actions-example-cluster-v3"></a>

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

1. 创建脚本。

   ```
   #!/bin/bash
     echo "The script has $# arguments"
     for arg in "$@"
     do
         echo "arg: ${arg}"
     done
     yum -y install "${@:1}"
   ```

1. 使用正确的权限将脚本上传到 Amazon S3。如果公共读取权限不适合您，请使用 [`HeadNode`](HeadNode-v3.md)/[`Iam`](HeadNode-v3.md#HeadNode-v3-Iam)/[`S3Access`](HeadNode-v3.md#yaml-HeadNode-Iam-S3Access) 和 [`Scheduling`](Scheduling-v3.md)/[`SlurmQueues`](Scheduling-v3.md#Scheduling-v3-SlurmQueues) 配置部分。有关更多信息，请参阅 [使用 Amazon S3](s3_resources-v3.md)。

   ```
   $ aws s3 cp --acl public-read /path/to/myscript.sh s3://amzn-s3-demo-bucket/myscript.sh
   ```
**重要**  
如果脚本是在 Windows 上编辑的，则必须将行结尾从 CRLF 更改为 LF，然后才能将脚本上传到 Amazon S3。

1. 更新 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"
   ```

1. 启动集群。

   ```
   $ pcluster create-cluster --cluster-name mycluster \
     --region <region> --cluster-configuration config-file.yaml
   ```

1. 验证输出。
   + 如果您在`HeadNode`配置中添加了自定义操作，请登录到头节点并运行以下命令`/var/log/cfn-init.log`来检查位于的`cfn-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 日志集成](cloudwatch-logs-v3.md)。