簡體   English   中英

使用 bash 腳本在 EC2 實例上啟動 session 管理器后如何在 EC2 實例上運行命令?

[英]How to run command on EC2 instance after starting session manager on it using bash script?

我正在編寫 bash 腳本以使用 session 管理器在 ec2 實例上安裝缺少的補丁。 我可以使用腳本啟動 session,但我不確定如何使用腳本對其運行命令?

    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 

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

有人可以指導我嗎?

AWS Systems Manager 會話管理器通過 Web 瀏覽提供類似 SSH 的連接。

但是,如果您希望在實例上自動執行命令,則應使用AWS Systems Manager Run Command ,它可以在單個實例或數百個實例上運行命令,並返回每次運行的結果。

我認為 AWS Systems Manager 是解決這種情況的最佳方式。 https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html

作為使用運行命令的替代方法,如果由於某種原因您需要使用 session,您可以使用AWS-StartNonInteractiveCommand文檔來執行此操作,例如:

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

要查看本文檔接受的其他參數,請運行

aws ssm describe-document --name AWS-StartNonInteractiveCommand

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM