建立複合文件
複合的 AWS Systems Manager (SSM) 文件是一種自訂文件,透過驅動一個或多個次要 SSM 文件來執行一系列動作。複合文件提升了 infrastructure as code,讓您能夠為常見任務建立一組標準的 SSM 文件,例如自舉軟體或網域加入執行個體。然後,您可以在相同 AWS 區域 的 AWS 帳戶 間共用這些文件,以降低 SSM 文件的維護成本和確保一致性。
例如,您可以建立複合的文件來執行下列動作:
-
將 SSM Agent 更新至最新版本
-
安裝允許清單中的所有修補程式。
-
安裝防毒軟體
-
從 GitHub 下載指令碼然後執行它們。
在這個範例中,自訂 SSM 文件中包含下列外掛程式以執行下列動作:
-
用於執行
AWS-UpdateSSMAgent
文件的aws:runDocument
外掛程式,可將 AWS Systems Manager SSM Agent 更新到最新版本。 -
用於執行舊版
AWS-ApplyPatchBaseline
文件的aws:runDocument
外掛程式,可安裝所有允許列出的修補程式。 -
用於執行
AWS-InstallApplication
文件的aws:runDocument
外掛程式,可安裝防毒軟體。 -
aws:downloadContent
的外掛程式能夠從 GitHub 下載指令碼並執行。
複合和次要文件可以存放在 Systems Manager、GitHub (公有和私有儲存庫) 或 Amazon S3。您可以用 JSON 或 YAML 格式建立複合文件和次要文件。
複合文件的執行深度最多只能為三個文件。這表示複合文件可以呼叫一個子文件,以及該子文件可以再呼叫一個文件。
建立複合文件
若要建立複合文件,需要在自訂 SSM 文件中新增 aws:runDocument 外掛程式,並指定所需的輸入。下列的範例是個建立複合的文件來執行下列動作:
-
執行 aws:downloadContent 外掛程式,將 SSM 文件從 GitHub 公有儲存庫下載到本機目錄 (稱為 bootstrap)。此 SSM 文件稱為 StateManagerBootstrap.yml (YAML 文件)。
-
執行
aws:runDocument
外掛程式,以執行 StateManagerBootstrap.yml 文件。無需指定參數。 -
執行
aws:runDocument
外掛程式,以執行AWS-ConfigureDocker pre-defined
SSM 文件。指定的參數在執行個體上安裝 Docker。
{ "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\"}" } } ] }
相關主題
-
如需使用 Run Command 呼叫指令碼時重新開機伺服器和執行個體的資訊,請參閱 從指令碼重新啟動受管節點。
-
如需有關建立 SSM 文件的詳細資訊,請參閱建立 SSM 文件。
-
如需有關您能夠新增至自訂 SSM 文件的外掛程式的詳細資訊,請參閱 Systems Manager 命令文件外掛程式參考。
-
如果您只想簡單從遠端位置 (無須建立複合文件) 執行文件的詳細資訊,請參閱 從遠端位置執行 Systems Manager 命令文件。