簡體   English   中英

在Bash腳本中將本地終端切換到AWS EC2實例

[英]switch local terminal to aws EC2 instance in Bash script

我需要自動執行aws configure連接到ec2並使用shell腳本在EC2實例內部運行命令。

echo "Do you need to configre AWS configure [y/n]?"
read -r aws_configure


if [ y = $aws_configure ]; then
    echo "######################################"
    echo "             AWS Configure            "
    echo "######################################"
    aws configure
else 
    echo "Skipped AWS Configuration !"
    echo "---------------------------"
fi

echo "######################################"
echo "     Connecting to EC2 Instance       "
echo "######################################"

echo "Which swarm that you need to create [private(a) or public(b)]?"
read -r swarm 

ssh -i ~/Documents/AWS/eu_instance_key.pem ec2-user@<EC2 Instance IP address>
**docker image ls ==> I need to run this command on EC2 instance**

我可以通過向實例發送ssh請求來連接到EC2實例。 但是我無法將EC2實例切換到其他命令。

使用bash腳本連接到實例后,我想在EC2服務器上運行一些命令。

我找不到實現此目的的方法,而我是Shell腳本的新手。

任何幫助,將不勝感激! 謝謝。

如果您必須為此使用SSH,請嘗試使用aws configure set來配置憑據,區域和其他屬性,而無需從標准輸入中讀取信息並使腳本復雜化。 此處更多https://docs.aws.amazon.com/cli/latest/reference/configure/set.html

另外,您可以將IAM角色與EC2實例相關聯,而不是顯式設置憑據,它會自動生成並輪換臨時憑據,因此您無需為此編寫腳本。 此處更多信息: https : //docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html

或者更好的是,使用AWS Systems Manager來管理服務器和執行腳本。 此處更多內容: https : //docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html

查看本教程以開始使用它: https : //aws.amazon.com/getting-started/tutorials/remotely-run-commands-ec2-instance-systems-manager/

我必須為此創建另一個bash腳本。 當我將ssh請求發送到EC2實例進行連接時,還通過本地傳遞並執行了我新創建的bash文件。

ssh -i $Path_to_PemFile_Private ec2-user@$Private_Instance_IP 'bash -s' < ./private_instance.sh 2> /tmp/Error

因此第二個bash是private_instance.sh,用於運行需要在EC2實例內部運行的命令。

暫無
暫無

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

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