bash - 在 Bash 脚本中将本地终端切换到 aws EC2 实例
问题描述
我需要自动化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
推荐阅读
- jquery - jQuery 上的 .not(this) 仍然可以识别 this(current row selected) 为什么会这样?
- java - 获取输入文件的路径
- php - 在 PHP 中未从数据库中找到数据
- android - AsyncTask 在 Android 中没有按预期工作
- docker - WSL 中的 Docker 绑定挂载不显示文件
- laravel-5 - Laravel 未定义变量,Laravel 5.2 使用 AdminLTE
- javascript - 创建标签时运行js函数
- ionic3 - 如何在 Angular 6 中添加 ng2-smart-table 嵌套列
- python - 删除和移动熊猫 df 中的值
- file - 寻找在 docker 上运行的两个 Web 应用程序之间存储文件的最佳方式