You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS SSM批量推送终端命令?

在AWS SSM中批量推送执行脚本的实现方法

核心思路:用SSM自定义命令文档打包脚本

AWS Systems Manager(SSM)的自定义命令文档可以把你的脚本逻辑封装成可复用、按需推送的独立单元,支持批量下发到目标实例,还能安全处理敏感信息。


步骤1:编写SSM命令文档(JSON格式)

把你的脚本逻辑嵌入到SSM文档中,同时将敏感信息(如密码)抽离到SSM参数存储,避免硬编码:

{
  "schemaVersion": "2.2",
  "description": "批量配置hosts并加入AD域",
  "parameters": {
    "DomainUsername": {
      "type": "String",
      "description": "域账号用户名"
    },
    "DomainPasswordParam": {
      "type": "String",
      "description": "存储密码的SSM参数名称(SecureString类型)"
    },
    "ServerIP": {
      "type": "String",
      "description": "域服务器IP",
      "default": "192.168.1.1"
    },
    "DomainName": {
      "type": "String",
      "description": "域名",
      "default": "domain.com"
    },
    "ServerHostname": {
      "type": "String",
      "description": "域服务器主机名",
      "default": "MyServer.domain.com"
    }
  },
  "mainSteps": [
    {
      "action": "aws:runShellScript",
      "name": "ConfigureHostsAndJoinDomain",
      "inputs": {
        "runCommand": [
          "echo '{{ ServerIP }} {{ ServerHostname }}' >> /etc/hosts",
          "apt update && apt install -y realmd",
          "PASSWORD=$(aws ssm get-parameter --name '{{ DomainPasswordParam }}' --with-decryption --query 'Parameter.Value' --output text)",
          "echo \"$PASSWORD\" | realm join -v --user='{{ DomainUsername }}' {{ DomainName }}",
          "reboot"
        ]
      }
    }
  ]
}

步骤2:存储敏感密码(可选但强烈推荐)

  1. 打开AWS控制台的SSM参数存储页面
  2. 创建一个SecureString类型的参数,存入你的域密码,例如命名为/domain/join-password

步骤3:上传自定义SSM文档

  1. 进入SSM控制台的文档页面
  2. 点击「创建文档」,选择「命令」类型
  3. 粘贴上述JSON内容,填写文档名称(如DomainJoinScript),保存即可

步骤4:批量执行文档

  1. 进入SSM的Run Command页面
  2. 点击「运行命令」,选择你刚创建的自定义文档DomainJoinScript
  3. 在「参数」栏填写:
    • DomainUsername:你的域账号用户名
    • DomainPasswordParam:步骤2中创建的密码参数名称
    • 其他参数可使用默认值或按需修改
  4. 在「目标」栏选择要执行的实例(支持按标签、实例ID批量选择)
  5. 配置超时时间、通知等选项后,点击「运行」

注意事项

  • 确保目标实例的SSM Agent有权限访问SSM参数存储:给实例的IAM角色添加ssm:GetParameter权限
  • 若realm join失败,可尝试额外安装依赖:apt install -y krb5-user
  • 执行reboot会重启实例,需确认业务允许重启操作

内容的提问来源于stack exchange,提问作者Bisclavret

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:16:01