【发布时间】:2017-01-15 09:41:06
【问题描述】:
我有一个 EC2 实例,我正在启动一个非常简单的用户数据脚本:
#!/bin/bash
aws s3 cp s3://<bucket-name>/myconf.conf /etc/httpd/conf.d/myconf.conf
该实例有一个关联的 IAM 角色,它允许访问存储桶,如果我手动 ssh 到正在运行的实例,我可以 sudo 执行命令将文件从 S3 复制到本地文件系统。
但是,如果我删除文件、停止实例、添加用户数据并再次启动实例 - 那么当我重新登录时,该文件还没有从 S3 复制下来。
有什么想法吗?
谢谢
【问题讨论】:
-
将 aws s3 cp s3://
/myconf.conf /etc/httpd/conf.d/myconf.conf 更改为 aws s3 cp s3:// /myconf.conf /etc/httpd/conf.d/* 然后看看文件是否被复制?你也可以粘贴 /etc/httpd/conf.d 目录的权限和用户 -
sudo 执行与以 root 执行不同。你的root账号有
.aws/credentials吗? -
没有 /root/.aws 目录或文件,但如果我用 sudo su 切换到 root - 那么我可以执行命令 OK: [root@ip-xx.xxx.xxx.xx ~ ]# aws s3 cp s3://xxxxxx/myconf.conf /etc/httpd/conf.d/myconf.conf 下载:s3://xxxxxx/myconf.conf 到 ../etc/httpd/conf.d/myconf .conf
-
conf.d 的权限和用户如下 drwxr-xr-x 2 root root 4096 Sep 7 20:21 conf.d
-
我将用户数据脚本更改为以下内容:
#!/bin/bash cp /home/ec2-user/foo.txt /home/ec2-user/bar.txt但即使这样也没有用
标签: amazon-web-services amazon-ec2