Question on AWS SSM automation


I created a common administrative task via run command with AWS-RunPowerShellScript targeting a few Windows instances. I tested it and it works. I'd like to automate it so that whenever I or someone needs to run we can just kick off. It'd be great if I was able to call it from Jenkins build (Jenkinsfile). I thought to use the CLI command ("aws ssm send-command") as is in Jenkinsfile, but SSM does not support Power Shell or Windows command platforms. It only supports Linux/Unix/OS X platform.

asked 3 months ago307 views
1 Answer

Here are a few options to automate and execute your PowerShell script on Windows EC2 instances from Jenkins:

  1. Use Jenkins Powershell plugin to directly run the PowerShell script on the instances as part of your Jenkins job. You can specify the script path and target machines.

  2. Install AWS CLI on your Jenkins server and use aws ssm send-command to invoke the script. Even though SSM doesn't directly support PowerShell, you can invoke cmd.exe to then execute the PowerShell script.

  3. Use Jenkins to copy the PowerShell script to a shared location on the instances (e.g. S3) and then use aws ssm send-command to execute a cmd.exe script to download and invoke it.

  4. Switch to using AWS RunCommand which is the successor to SSM documents for automating ops. It has better support for PowerShell scripts on Windows. Invoke the run command from Jenkins.

  5. Use Jenkins Powershell plugin to copy the script to instances first, then use aws ssm send-command to invoke cmd.exe to execute the script locally.

  6. Package the PowerShell script into an SSM document for Windows. This can then be executed directly using aws ssm send-command even if SSM doesn't natively support PS.

So in summary, combine Jenkins with AWS CLI and PowerShell plugins, SSM, RunCommand or cmd.exe invocation to automate running your Powershell administrative tasks on Windows from Jenkins.

answered 3 months ago
  • SSM doesn't support powershell or windows command cli

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions