【问题标题】:Get public DNS for aws_autoscaling_group instances获取 aws_autoscaling_group 实例的公共 DNS
【发布时间】:2018-12-08 23:58:07
【问题描述】:

我想输出组成我的 Auto Scaling 组的 EC2 的公共 DNS:

resource "aws_launch_configuration" "instances" {
  image_id        = "ami-0fad7824ed21125b1"
  instance_type   = "${var.instance_type}"
  security_groups = ["${aws_security_group.security_group_ec2.id}"]
  key_name        = "${var.key_pair_name}"

  user_data = "${data.template_file.user_data.rendered}"

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_autoscaling_group" "scaling_group" {
  launch_configuration = "${aws_launch_configuration.instances.id}"
  availability_zones   = ["${var.availability_zones_names}"]

  load_balancers    = ["${var.elb_id}"]
  health_check_type = "ELB"

  min_size = "${var.min_size}"
  max_size = "${var.max_size}"

  tags = {
    key                 = "Name"
    value               = "terraformUpAndRunning-${var.cluster_name}"
    propagate_at_launch = true
  }

  wait_for_capacity_timeout = "5m"
}

我已经检查了官方 Terraform 文档中的 auto scaling group attributes,但无法在其中任何一个中找到我的目标......有什么办法吗?

【问题讨论】:

  • 实例是在ASG创建之后异步创建的,所以我想没有办法做到这一点。
  • 使用data.aws_instance也执行到早期..

标签: amazon-ec2 terraform terraform-provider-aws


【解决方案1】:

由自动缩放组管理的实例不受 Terraform 管理。因此,Terraform 在其状态文件中跟踪这些临时实例是不明智的。临时实例会按其性质来来去去。

但是,如果您真的想要为此目的使用 Terraform,则有一个名为 aws_instances 的数据源。这使您能够查询和列出多个实例。

您也可以使用awscli 打印出实例详细信息。这是一个例子:Getting a list of instances in an EC2 auto scale group?

【讨论】:

  • 您也可以,将负载均衡器分配给 ASG,并获取 ALB/ELB 的 DNS。
猜你喜欢
  • 2012-03-03
  • 1970-01-01
  • 2012-04-29
  • 2014-01-23
  • 2015-03-23
  • 2017-04-20
  • 2014-12-29
  • 2014-11-24
  • 2021-04-25
相关资源
最近更新 更多