我需要自动化 aws 配置,连接到 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 系统管理器来管理服务器和执行脚本。更多在这里: 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 实例中运行的 commads。