Amazon EC2 Systems Manager
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

创建复合文档

复合 SSM 文档是自定义文档,可通过运行一个或多个次要 SSM 文档执行一系列操作。复合文档允许您为诸如引导软件或加入域的实例等常见任务创建一组标准的 SSM 文档,从而提升了基础设施即代码。您随后可以跨 AWS 账户共享这些文档,从而减少 SSM 文档的维护工作并确保文档一致性。

例如,您可以创建执行以下操作的复合文档:

  1. 将 SSM 代理更新到最新版本。

  2. 安装已列入白名单的所有补丁。

  3. 安装防病毒软件。

  4. 从 GitHub 下载脚本并运行这些脚本。

在本例中,您的自定义 SSM 文档包含执行下面这些操作的以下插件:

  1. 可运行 AWS-UpdateSSMAgent 文档的 aws:runDocument 插件,这会将 SSM 代理更新到最新版本。

  2. 可运行 AWS-ApplyPatchBaseline 文档的 aws:runDocument 插件,这会安装已列入白名单的所有补丁。

  3. 可运行 AWS-InstallApplication 文档的 aws:runDocument 插件,这会安装防病毒软件。

  4. 可从 GitHub 下载脚本并运行这些脚本的 aws:downloadContent 插件。

复合和次要文档可存储在 Systems Manager、GitHub (公有和私有存储库) 或 Amazon S3 中。复合文档必须采用 JSON 格式创建,但次要文件可采用 JSON 或 YAML 格式创建。

注意

复合文档只能运行三个文档的最大文档深度。这意味着复合文档可以调用子文档;该子文档可调用最后一个文档。

创建复合文档

要创建复合文档,请在自定义 SSM 文档中添加 aws:runDocument 插件并指定必需的输入。下面是可执行以下操作的复合文档示例:

  1. 运行 aws:downloadContent 插件可从公有存储库将 SSM 文档下载到名为 bootstrap 的本地目录。SSM 文档称为 StateManagerBootstrap.yml (YAML 文档)。

  2. 运行 aws:runDocument 插件可运行 StateManagerBootstrap.yml 文档。未指定任何参数。

  3. 运行 aws:runDocument 插件可运行 AWS-ConfigureDocker 预定义的 SSM 文档。指定的参数会在实例上安装 Docker。

Copy
{ "schemaVersion": "2.2", "description": "My composite document for bootstrapping software and installing Docker.", "parameters": { }, "mainSteps": [ { "action": "aws:downloadContent", "name": "downloadContent", "inputs": { "sourceType": "GitHub", "sourceInfo": "{\"owner\":\"TestUser1\",\"repository\":\"TestPublic\", \"path\":\"documents/bootstrap/StateManagerBootstrap.yml\"}", "destinationPath": "bootstrap" } }, { "action": "aws:runDocument", "name": "runDocument", "inputs": { "documentType": "LocalPath", "documentPath": "bootstrap", "documentParameters": "{}" } }, { "action": "aws:runDocument", "name": "configureDocker", "inputs": { "documentType": "SSMDocument", "documentPath": "AWS-ConfigureDocker", "documentParameters": "{\"action\":\"Install\"}" } } ] }

有关创建 SSM 文档的更多信息,请参阅创建 Systems Manager 文档。有关可添加到自定义 SSM 文档的插件的更多信息,请参阅SSM 文档插件参考。如果只想从远程位置运行文档 (无需创建复合文档),请参阅从远程位置运行文档

本页内容: