【问题标题】:Run userdata on custom EC2 AMI created from centos 7在从 centos 7 创建的自定义 EC2 AMI 上运行用户数据
【发布时间】:2019-06-01 21:46:35
【问题描述】:

我使用ami-3ecc8f46,可从https://aws.amazon.com/marketplace/pp/B00O7WM7QW 获得。

如果我直接使用这个 AMI,并且我指定了一个用户数据脚本,例如:

#!/bin/bash

echo "Hello from userdata!"

.. commands

然后一切正常,命令运行。但是,我想制作一个自定义 AMI,即这个 centos7 AMI + 一些包。

例如,我想要一个 ami-3ecc8f46 实例,安装 python 3.7,并将其重新映像为自定义 AMI。当我这样做时,用户数据不再运行,curl http://169.254.169.254/latest/user-data 返回 404 错误。

不幸的是,似乎 ec2/userdata/cloudinit 的某种组合已将此实例标记为已运行一次,因此不再需要提供或运行用户数据。采用自定义 CentOS AMI、在顶部安装一些软件包并重新映像为仍将运行我的 userdata 脚本的自定义 AMI 的最简单方法是什么?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 centos user-data cloud-init


    【解决方案1】:

    要创建自定义 AMI,您可以使用 Packer

    将自定义 AMI 的构建定义为代码 (Infrastructure as Code) 具有优势。 Userdata 将能够在该自定义 AMI 中运行。

    还可以查看关于 SO 的 existing issue 以获得其他解决方案。

    【讨论】:

    • 谢谢,我看到了您提到的现有问题,但不知何故错过了删除/var/lib/cloud 的提示。这似乎可以解决问题。
    猜你喜欢
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2015-01-21
    相关资源
    最近更新 更多