定义:Terraform - AWS - aws_instance - USER_DATA

问题描述 投票:2回答:3

我与Terraform工作,启动一个精英集群。

我使用的是别人写的剧本。据我所知大部分的启动配置脚本,比这一点其他的:

我试图找到自动缩放组和精英组之间的联系。

我有一个使用的aws_autoscaling_groupaws_launch_configuration(见下文)。该aws_launch_configurationuser_data参数。这是自动缩放组和我能找到集群之间的唯一联系。

纵观链接(底部)的文件,它不会给人一种很好的解释“什么” user_data是。是否有人可以帮助我了解“如何做”的user_data的自动缩放组与群集连接,如果可能的话举一些例子说明或连结什么它通常用于和它是如何正常使用。

...
resource "aws_launch_configuration" "ecs_host" {
  ...

  user_data = <<EOF
#!/bin/bash
echo ECS_CLUSTER=${var.cluster_name} >> /etc/ecs/ecs.config
EOF
}
...

terraform适用输出:

  ...
  + aws_launch_configuration.ecs_host
      ...
      user_data: "4e27e8feea0896af43ada0c647877da3766f5dcb"
  ...

https://www.terraform.io/docs/providers/aws/r/instance.html#user_data https://www.terraform.io/docs/providers/aws/r/launch_configuration.html#user_data

amazon-web-services amazon-ec2 terraform autoscaling
3个回答
2
投票

official explanation by terraform

user_data - (Optional) The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.

AWS官方文件说明什么是qazxsw POI

user_data

因此,在一般情况下,您定义的启动配置和自动定标组后,自动缩放集团将确保许多EC2实例需要怎样启动(期望的容量)。

当启动一个新的实例,它会引用启动配置,它定义其AWS AMI为实例,什么init命令将运行。在init命令保存在https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html脚本。

在你的情况下,用户数据脚本本身注册到指定的精英集群。所以,精英集群可以很容易地发现这些EC2实例

user_data

在后台,有一个名为echo ECS_CLUSTER=${var.cluster_name} >> /etc/ecs/ecs.config 运行,以帮助这些registions和管理其他集装箱码头工人,容器(ECS服务)

如果你想知道的细节,你可以通过这个文件:amazon/amazon-ecs-agent


1
投票

简而言之用户数据是在自举一个EC2实例运行的脚本。您可以自动执行需要发生,以确保您的EC2是正确配置,并指定它们作为USER_DATA行动,指示AWS上运行的机器引导脚本。


1
投票

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html属性允许你指定脚本有效载荷或云守护进程的说明。数据可以通过内联模板作为你的情况与脚本,或者文件模板,您将需要处理的user_data。所以,当你想创建一个新的启动配置,用于自动缩放群体,这是在这里执行脚本的选项之一,并得到了输出作为集群的例如哈希值。

该限制是无法通过这个参数传递gzip压缩的数据;看到user_data_base64而是你不应该存储敏感数据,如密码,用户数据。

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