【问题标题】:AWS EC2 instance user data bash script not workingAWS EC2 实例用户数据 bash 脚本不起作用
【发布时间】: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


【解决方案1】:

作为包含在 Amazon EC2 实例中的元数据的一部分,用户数据可用于安装包或脚本。默认情况下,用户数据在实例第一次启动时执行一次。

分辨率

  • 在 Amazon EC2 控制台中,选择实例、操作、实例 状态,然后选择停止。
  • 选择操作、实例设置,然后选择查看/更改用户数据。
  • 以下示例是一个将“Hello World”写入文件的 shell 脚本 在 /tmp 目录中。 复制并粘贴到“用户数据”字段中,然后选择“保存”。
内容类型:多部分/混合;边界="//" MIME 版本:1.0 --// 内容类型:文本/云配置; charset="us-ascii" MIME 版本:1.0 内容传输编码:7bit 内容处置:附件;文件名="云配置.txt" #cloud-config cloud_final_modules: - [脚本用户,总是] --// 内容类型:text/x-shellscript; charset="us-ascii" MIME 版本:1.0 内容传输编码:7bit 内容处置:附件;文件名="用户数据.txt" #!/bin/bash /bin/echo “你好世界。” >> /tmp/sdksdfjsdlf --//

选择操作、实例状态,然后选择开始。

cloud-init 阶段完成后,您包含的用户数据命令应该已在实例上执行。

【讨论】:

    【解决方案2】:

    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html:

    重要

    用户数据脚本和 cloud-init 指令仅在启动实例时的第一个引导周期内运行。

    【讨论】:

    • 嗨,谢谢。大约 20 分钟前,我确实想到了这一点,现在通过 /etc/rc.local 成功运行命令
    • 默认情况下,用户数据脚本和 cloud-init 指令仅在您首次启动实例时的引导周期内运行,但您可以更新配置以确保您的用户数据脚本和 cloud-init 指令运行每次重启实例时。
    猜你喜欢
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2016-09-05
    • 2016-12-24
    • 2014-05-22
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多