AWS 用户数据选项不起作用

问题描述 投票:0回答:1

通过 AWS 控制台,我使用自定义 AMI 启动实例。作为系统初始化的一部分,需要更新一些 XML 文件。尽管我输入了用户数据,但它似乎不起作用。即使我尝试了简单的事情,例如在文件中回显,它仍然不起作用。

[root@ip-xx-xx-xx-xx ~]# curl -s http://169.254.169.254/latest/user-data
#!/bin/bash
echo "Shiv" >  /tmp/check1.txt
echo "all" > check.txt[root@ip-172-31-40-190 ~]# timed out waiting for input: auto-logout

/var/log/message
中不存在任何与云关键字相关的内容:

grep -inr "cloud" /var/log/messages 

User data entered

它甚至没有文件

/var/log/cloud-init-output.log
。在这种情况下我错过了什么?

amazon-web-services amazon-ec2 amazon-ami ec2-userdata
1个回答
0
投票

您似乎正在使用 VM 导入/导出 - VM 导入/导出将 VM 作为映像导入。因此,您的实例未安装

cloud-init

cloud-init
是一个实用程序,将在启动时运行脚本:

云镜像是操作系统模板,每个实例都是从其他实例的相同克隆开始的。用户数据赋予每个云实例个性,cloud-init 是自动将用户数据应用到实例的工具

当您启动 Amazon EC2 实例时,它会运行操作系统。操作系统负责在实例上运行进程、响应脚本、命令行等。它就像任何普通计算机一样。在启动时运行脚本的进程称为

cloud-init

如果

cloud-init
安装在 EC2 实例上,那么它将在用户数据中查找并运行脚本 每个实例 ID 一次。根据配置,它还可以在其他情况下运行。

cloud-init
安装在 Amazon Linux、Unbuntu 和其他一些 AMI 上。

由于您是从外部虚拟机创建自己的 AMI,因此您将需要安装

cloud-init
以使用户数据脚本在首次启动时运行

一点历史......用户数据最初只是一种向实例“传递一些信息”的方式(因此名称为“用户数据”)。 Canonical 首先想到了可以通过用户数据“传递脚本”的想法。创建的cloud-init,它已成为许多云计算平台的标准。

    

© www.soinside.com 2019 - 2024. All rights reserved.