【发布时间】:2017-03-02 18:24:52
【问题描述】:
我正在尝试在 AWS 上设置 CoreOS,以便在启动时运行特定命令,以下载我们的 DCOS 集群的信息压缩包并运行其中包含的脚本。这些脚本有助于将实例作为“代理”添加到我们的 DC/OS 集群。
但是,我似乎无法让 docker run 命令运行。我确实看到用户数据正在创建 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
与其他 AMI 不同,在 /var/log/ 中没有 CoreOS 的“启动”日志文件。
我现在真的被困住了,希望能在正确的方向上得到一些推动。
这是我的用户数据(我在实例启动期间以文本形式发布):
#!/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
【问题讨论】:
-
你有没有想过这个问题?我在 Digital Ocean 上遇到了类似的问题。即使我的脚本的其余部分执行,我的 docker run 似乎也没有执行。 stackoverflow.com/questions/40924883/…
-
我放弃了,搬到了 CentOS。本来希望 CoreOS 为我们工作。
标签: amazon-web-services coreos user-data