

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS PCS 叢集上設定 Slurm CLI 篩選條件外掛程式
<a name="slurm-cli-filter-plugins-configure"></a>

在建立新的 AWS PCS 叢集時設定 CLI 篩選條件外掛程式。您可以使用更新 API 或主控台在現有叢集上啟用或停用 CLI 篩選條件外掛程式，而無需重新建立叢集。

## 先決條件
<a name="slurm-cli-filter-plugins-configure-prerequisites"></a>

設定 CLI 篩選條件外掛程式之前，請先完成下列任務：
+ 撰寫並測試實作 CLI Filter Plugin API 的 Lua 指令碼
+ 準確命名 Lua 指令碼 `cli_filter.lua`
+ 選擇將指令碼部署到所有叢集執行個體 (AMI、S3 或檔案系統） 的方法
+ 確認您使用的是 Slurm 24.11 版或更新版本

## 在新叢集上啟用 CLI 篩選條件外掛程式
<a name="slurm-cli-filter-plugins-configure-create"></a>

------
#### [ AWS PCS console ]

1. 在 https：//[https://console.aws.amazon.com/pcs/](https://console.aws.amazon.com/pcs/) 開啟 AWS PCS 主控台。

1. 在導覽窗格中，選擇**叢集**。

1. 選擇 **Create Cluster** (建立叢集)。

1. 選取有效的 Slurm 版本 (24.11 版或更新版本）。

1. 在**排程器設定**下，展開**其他排程器設定**。

1. 新增參數**名稱**設為 `CliFilterPlugins`且參數**值**設為 的新 Slurm 自訂設定`cli_filter/lua`。

1. 完成剩餘的叢集組態，然後選擇**建立叢集**。

------
#### [ AWS PCS API ]

在呼叫 `CreateCluster` API 動作時提供`slurmCustomSettings`組態。將 `parameterName`設定為 `CliFilterPlugins`，將 `parameterValue`設定為 `cli_filter/lua`。如需詳細資訊，請參閱 *AWS PCS API 參考*中的 [CreateCluster](https://docs.aws.amazon.com/pcs/latest/APIReference/API_CreateCluster.html)。

下列範例使用 AWS CLI 呼叫 `CreateCluster` API 動作。自訂設定`CliFilterPlugins=cli_filter/lua`會啟用 CLI 篩選條件外掛程式。

```
aws pcs create-cluster --cluster-name {{cluster-name}} \
--scheduler type=SLURM,version=24.11 \
--size SMALL \
--networking subnetIds={{cluster-subnet-id}},securityGroupIds={{cluster-security-group-id}} \
--slurm-configuration \
'slurmCustomSettings=[{parameterName=CliFilterPlugins,parameterValue="cli_filter/lua"}]'
```

------

## 部署 CLI 篩選條件外掛程式指令碼
<a name="slurm-cli-filter-plugins-configure-deploy"></a>

**將 CLI 篩選條件外掛程式指令碼部署到您的叢集**

1. 確保運算節點群組中使用的所有 AMIs 透過 AWS PCS Slurm 安裝程式安裝 Slurm。
**注意**  
如果您對所有運算節點群組使用 AWS PCS 範例 AMI，請略過此步驟。Slurm 已安裝。

1. 將您的`cli_filter.lua`指令碼部署`/etc/aws/pcs/scheduler/slurm-<version>/cli_filter.lua`到叢集中所有執行個體上的 。

   例如，對於 Slurm 24.11 版：

   ```
   /etc/aws/pcs/scheduler/slurm-24.11/cli_filter.lua
   ```

1. 使用您準備好AMIs 啟動所有登入和運算節點。

1. 測試任務提交以驗證 CLI 篩選條件外掛程式是否正確執行。

## 在現有叢集上啟用或停用 CLI 篩選條件外掛程式
<a name="slurm-cli-filter-plugins-configure-update"></a>

您可以在現有叢集上啟用或停用 CLI 篩選條件外掛程式，而無需重建您的基礎設施。如需詳細資訊，請參閱[在 AWS PCS 中更新叢集](working-with_clusters_update.md)。

------
#### [ AWS PCS console ]

1. 在 https：//[https://console.aws.amazon.com/pcs/](https://console.aws.amazon.com/pcs/) 開啟 AWS PCS 主控台。

1. 在導覽窗格中，選擇**叢集**。

1. 選取要更新的叢集。

1. 選擇**編輯**動作。

1. 在編輯叢集頁面**的其他排程器設定**下：
   + 若要啟用 CLI 篩選條件外掛程式：新增**參數名稱**設為 `CliFilterPlugins`且**參數值**設為 的新 Slurm 自訂設定`cli_filter/lua`。
   + 若要停用 CLI 篩選條件外掛程式：移除現有的`CliFilterPlugins`設定。

1. 選擇**更新叢集**以提交變更。

1. 監控叢集狀態，此狀態會在程序期間顯示為「更新」，並在更新完成時顯示為「作用中」。

------
#### [ AWS PCS API ]

使用 `UpdateCluster` API 動作啟用或停用 CLI 篩選條件外掛程式。如需詳細資訊，請參閱 *AWS PCS API 參考*中的 [UpdateCluster](https://docs.aws.amazon.com/pcs/latest/APIReference/API_UpdateCluster.html)。

若要在現有叢集上啟用 CLI 篩選條件外掛程式：

```
aws pcs update-cluster --cluster-identifier {{my-cluster}} \
--slurm-configuration \
'slurmCustomSettings=[{parameterName=CliFilterPlugins,parameterValue="cli_filter/lua"}]'
```

若要在現有叢集上停用 CLI 篩選條件外掛程式：

```
aws pcs update-cluster --cluster-identifier {{my-cluster}} \
--slurm-configuration \
'slurmCustomSettings=[]'
```

------

## 預期的結果
<a name="slurm-cli-filter-plugin-configure-results"></a>

完成組態後：
+ 在開啟 CLI Filter Plugin 的情況下建立叢集
+ 任務提交會在到達 Slurm 控制器之前觸發您的自訂驗證邏輯
+ 不合規任務會因您的自訂錯誤訊息而遭到拒絕
+ 合規任務透過 Slurm 排程器正常進行

## 疑難排解
<a name="slurm-cli-filter-plugin-configure-troubleshooting"></a>

**任何節點上缺少 CLI 篩選條件外掛程式指令碼**  
**症狀：**任務提交會立即失敗，並出現外掛程式載入錯誤。  
**可能原因：**指令碼未部署到所有執行個體或不正確的檔案路徑或名稱。  
**解決方法：**確認指令碼存在於所有登入和運算節點的正確路徑，且檔案名稱為 `cli_filter.lua`。

**無效的 CLI 篩選條件外掛程式組態**  
**徵狀：**叢集建立失敗並出現驗證錯誤。  
**可能原因：**`CliFilterPlugins`參數未設定為 `cli_filter/lua` 格式。  
**解決方案：**在 `cli_filter/lua`中使用確切的參數值`slurmCustomSettings`。