使用 bash 脚本在 EC2 实例上启动会话管理器后如何在 EC2 实例上运行命令?

Jiy*_*iya 5 bash amazon-ec2 amazon-web-services aws-cli amazon-systems-manager

我正在编写 bash 脚本来使用会话管理器在 ec2 实例上安装缺少的补丁。我可以使用脚本启动会话,但我不确定如何使用脚本在其上运行命令?

    instanceid = "i-098xxxx"

    echo $instanceid
    echo "instance id"

    # Creating AMI 
    echo "-------------------------------Creation AMI-----------------------------------------"
    aws ec2 create-image --instance-id $instanceid --name "test ami" --description "Delete when 
    testing" --no-reboot --profile xyz

    # Start Session Manager
    aws ssm start-session --target $instanceid --profile xyz

 
    # Command to check for critical security patches and update/install it on ec2 instance
    echo "-------------------------------installing missing patches----------------------------- 
    ------------"
    sudo yum update-minimal --sec-severity=critical,important --bugfix 
Run Code Online (Sandbox Code Playgroud)

我想sudo yum update-minimal --sec-severity=critical,important --bugfix使用脚本在 ec2 实例中运行命令。

有人可以指导我吗?

lxo*_*xop 8

作为使用 run-command 的替代方法,如果由于某种原因您需要使用会话,您可以使用文档来执行此操作AWS-StartNonInteractiveCommand,例如:

aws ssm start-session \
    --document-name 'AWS-StartNonInteractiveCommand' \
    --parameters '{"command": ["sudo yum -y update amazon-ssm-agent"]}' \
    --target "$instanceid"
Run Code Online (Sandbox Code Playgroud)

要查看本文档接受的其他参数,请运行

aws ssm describe-document --name AWS-StartNonInteractiveCommand
Run Code Online (Sandbox Code Playgroud)


Joh*_*ein 1

AWS Systems Manager 会话管理器通过 Web 浏览器提供类似 SSH 的连接。

但是,如果您希望在实例上自动执行命令,则应使用AWS Systems Manager Run Command,它可以在单个实例或数百个实例上运行命令,并返回每次运行的结果。