从AWS CLI启动EC2实例时未执行用户数据脚本

时间:2016-08-17 18:45:33

标签: bash amazon-web-services docker amazon-ec2 aws-cli

我正在尝试使用AWS CLI从我安装了Docker的映像启动EC2实例,然后为该实例提供--user-data传入的脚本以从docker中提取映像集线器并运行该图像。我的AWS CLI命令启动实例,但似乎传递给--user-data的脚本永远不会运行。

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

我正在将docker命令的输出重定向到startup.log以查看是否发生任何标准输出。当我登录到实例时,没有创建日志文件,这使我相信user-data脚本永远不会运行。 docker imagesdocker ps都表明实例上没有图像或容器。

该命令成功启动实例,只是没有拉动并运行docker容器(默认情况下Docker正在实例上运行,因此无需启动它)。在启动实例后,如果我将脚本的内容粘贴到终端并执行它,则拉出容器并运行它,因此脚本似乎没有任何问题。

1 个答案:

答案 0 :(得分:1)

事实证明它毕竟是有效的。我没有足够的时间让docker pull下载所有内容。几分钟后检查是否存在日志文件,图像和容器,表明一切都在那里。