amazon-web-services - CoreOS AWS userdata "docker run"启动时无法运行

标签 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

与其他 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

最佳答案

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

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

关于amazon-web-services - CoreOS AWS userdata "docker run"启动时无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159742/

相关文章:

amazon-web-services - 在 EC2 与 ECS 上部署 Keycloak 的优势

docker - VMWare VIC(Photon OS + Docker)与 CoreOS + Docker

amazon-web-services - 在 AWS 上创建 kubernetes HA 集群

python - 如何在 aws EC2 实例(ubuntu)上运行 python 脚本?

terraform - Terraform 中使用多个 user_data 文件

networking - 亚马逊AWS VPC 场景2 : Specify the public IP address range of your network?

amazon-web-services - 可以使用 Terraform 为堡垒分配特定的 AWS 弹性 IP 吗?

bash - 如何检查我的本地 docker 镜像是否已过时,而无需从其他地方推送?

php - 在 WordPress 的管理员用户列表自定义列中显示用户元数据值

amazon-web-services - 在附加了 SAML 提供程序的 AWS 中使用 Terraform 创建角色