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 实例中运行命令。
有人可以指导我吗?
作为使用 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)
AWS Systems Manager 会话管理器通过 Web 浏览器提供类似 SSH 的连接。
但是,如果您希望在实例上自动执行命令,则应使用AWS Systems Manager Run Command,它可以在单个实例或数百个实例上运行命令,并返回每次运行的结果。