0
我想使用AWS CLI从映像启动EC2实例我已经安装了Docker,然后为该实例提供一个脚本通过--user-data
从码头集线器中拉出图像并运行该图像。我的AWS CLI命令启动实例,但看起来传递给--user-data
的脚本从未运行。从AWS CLI启动EC2实例时未执行用户数据脚本
的CLI命令是:
aws ec2 run-instances --image-id ami-xxxxx --count 1 --instance-type t2.micro --key-name xxxxx --security-groups xxxxxxx --user-data file:///Users/xxxxxx/startlb.sh
和startlb.sh
内容:
#!/bin/bash
docker pull xxxxxx && docker run -p 9000:9000 -p 9090:9090 -d xxxxxxx go run lbserver.go > /home/ec2-user/startup.log
我重定向命令泊坞窗进入startup.log的输出,以查看是否发生任何标准输出。当我登录到实例时,日志文件未被创建,导致我相信user-data
脚本从不运行。 docker images
和docker ps
都显示实例上没有图像或容器。
该命令成功启动实例,只是不需要拖动和运行docker容器(默认情况下,Docker在实例上运行,因此无需启动它)。如果我将脚本的内容粘贴到终端并执行它,则会启动实例,然后拉动容器并运行该容器,因此脚本没有出现任何问题。
当您通过AWS Web控制台查看实例的用户数据时,用户数据内容是否正确显示? AMI是否实际安装了cloud-init服务? –
这个文件startlb.sh的权限是什么? – error2007s
检查cloud-init日志(可能是'/ var/log/cloud-init *')以查看脚本是否运行,但由于某种原因失败。 –