启动时CoreOS AWS userdata“docker run”将无法运行

时间:2016-10-20 16:26:43

标签: amazon-web-services coreos user-data

我正在尝试在AWS上设置CoreOS以在启动时运行特定命令以下载我们的DCOS群集的信息tarball并运行其中包含的脚本。这些脚本有助于将实例作为“代理”添加到我们的DC / OS群集中。

但是,我似乎无法运行 docker run 命令。我确实看到userdata正在创建tee的输出文件(保持为空)以及/ opt / dcos_install_tmp /目录(也保持为空)。

此处的docker run命令下载“awscli”容器,从S3获取软件包(使用IAM实例配置文件凭据),然后将其吐出到CoreOS文件系统。

在CoreOS上安装AWS CLI似乎并不简单(没有包管理器,没有python),所以我不得不求助于此。

如果我登录到实例并通过将它们放在脚本中运行相同的命令,我绝对没有问题。

我检查了“journalctl --identifier = coreos-cloudinit”,没有发现任何迹象表明问题。它只是报道:

 15:58:34 Parsing user-data as script

/ var / log /中的CoreOS没有“启动”日志文件,与其他AMI不同。

我现在真的被困住了,并希望能朝正确的方向努力。

这是我的userdata(我在实例启动期间将其作为文本发布):

#!/bin/bash

/usr/bin/docker run -it --name cli governmentpaas/awscli aws s3 cp s3://<bucket>/dcos/dcos_preconfig.sh /root && /usr/bin/docker cp cli:/root/dcos_preconfig.sh . && /usr/bin/docker rm cli | tee -a /root/userdatalog.txt

/usr/bin/docker run -it --name cli governmentpaas/awscli aws s3 cp s3://<bucket>/dcos/dcos-install.tar /root && /usr/bin/docker cp cli:/root/dcos-install.tar . && /usr/bin/docker rm cli | tee -a /root/userdatalog.txt

sudo mkdir -p /opt/dcos_install_tmp

sudo tar xf dcos-install.tar -C /opt/dcos_install_tmp | tee -a /root/userdatalog.txt

sudo /bin/bash /opt/dcos_install_tmp/dcos_install.sh slave | tee -a /root/userdatalog.txt

1 个答案:

答案 0 :(得分:0)

从docker run命令中删除-t标志。

我遇到了类似的问题:DigitalOcean: How to run Docker command on newly created Droplet via Java API 问题最终成为docker run命令中的-t标志。显然这不起作用,因为它不是终端或类似的东西。删除标志,它运行正常。