Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Terraform AWS用户_数据不使用自定义AMI图像_Amazon Web Services_Terraform - Fatal编程技术网

Amazon web services Terraform AWS用户_数据不使用自定义AMI图像

Amazon web services Terraform AWS用户_数据不使用自定义AMI图像,amazon-web-services,terraform,Amazon Web Services,Terraform,我目前有自定义的AWS AMI图像,Terraform无法在user_数据部分执行脚本或内联代码。它适用于AWS AMI映像,但在我使用自己的映像时不起作用 data "template_file" "user_data" { template = "${file("sample")}" } resource "aws_launch_configuration" "test" { image_id = "ami-xxxxxx" instance_type = "t2.medium" secu

我目前有自定义的AWS AMI图像,Terraform无法在user_数据部分执行脚本或内联代码。它适用于AWS AMI映像,但在我使用自己的映像时不起作用

data "template_file" "user_data" {
template = "${file("sample")}"
}


resource "aws_launch_configuration" "test" {
image_id = "ami-xxxxxx"
instance_type = "t2.medium"
security_groups = ["xxxxx", "xxxxxxx"]
key_name = "xxxxxxx"
}



resource "aws_instance" "ZC1" {
    ami = "ami-xxxxxxx" #ZC AMI IMAGE
    instance_type = "t2.medium"
    subnet_id = "subnet-xxxxx"
    private_ip = "x.x.x.x"
    key_name = "xxxxxx"
    vpc_security_group_ids = ["xxxxx", "xxxxxxx"]
    user_data = "${data.template_file.user_data.rendered}"
    tags {
    "Name" = "Terraform Script Test"
        }
}

在EC2实例上设置
user_data
时,AWS仅通过将此数据提供给实例。AMI中安装的软件必须检索这些数据并决定如何处理这些数据

在实践中,您可以通过登录到实例并运行如下命令看到这一点,假设您有可用的
curl

curl http://169.254.169.254/latest/user-data
如果按预期工作,您应该在此处看到为
user\u data
指定的值

处理用户数据最常用的方法是via,这是一个设计用于在实例启动时运行的程序(例如,通过systemd、init等),它检索
用户数据并根据在那里找到的内容采取各种操作。例如,如果检索到的数据看起来像一个普通的shell脚本,那么
cloudinit
将执行该脚本

除了
云初始化
,还有其他选择,例如。如果您有特殊需要,您还可以自由编写自己的程序来处理启动时配置


在这里启动和运行的最简单方法是确保
cloudinit
作为AMI创建的一部分安装并配置为在引导时运行。然后,您将看到熟悉的Amazon Linux或Ubuntu AMIs的启动时配置行为。

在EC2实例上设置
用户数据时,AWS只是通过将这些数据提供给实例。AMI中安装的软件必须检索这些数据并决定如何处理这些数据

在实践中,您可以通过登录到实例并运行如下命令看到这一点,假设您有可用的
curl

curl http://169.254.169.254/latest/user-data
如果按预期工作,您应该在此处看到为
user\u data
指定的值

处理用户数据最常用的方法是via,这是一个设计用于在实例启动时运行的程序(例如,通过systemd、init等),它检索
用户数据并根据在那里找到的内容采取各种操作。例如,如果检索到的数据看起来像一个普通的shell脚本,那么
cloudinit
将执行该脚本

除了
云初始化
,还有其他选择,例如。如果您有特殊需要,您还可以自由编写自己的程序来处理启动时配置

在这里启动和运行的最简单方法是确保
cloudinit
作为AMI创建的一部分安装并配置为在引导时运行。然后,您将看到熟悉的Amazon Linux或Ubuntu AMIs的启动时配置行为。

当您说“用户数据部分中的脚本或内联代码”时,您是指
\cloud config
片段吗?这类配置通常由
cloud init
包处理,需要在映像上安装和配置(默认情况下在最流行的AMI上可用)。您是否可以编辑您的问题,以提供有关AMI是如何构建的、它来自何处以及用户数据是什么样子的更多信息?当您说“用户数据部分中的脚本或内联代码”时,请尝试这样做,您是指
#云配置
片段吗?这类配置通常由
cloud init
包处理,需要在映像上安装和配置(默认情况下在最流行的AMI上可用)。您是否可以编辑您的问题,以提供有关AMI是如何构建的、它来自何处以及用户数据是什么样子的更多信息