首页 > 解决方案 > 根据标签在多个 EC2 上设置主机名

问题描述

我正在运行一个 terraform 代码来创建多个 EC2 实例。有没有办法根据标签和域名设置实例的主机名。目前我登录并运行 hostnamectl set-hostname ..

这是我使用创建实例的 tf 脚本。

resource "aws_instance" "RR-TEMP-V-DB" {
  ami                     = var.linux_ami[var.region]
  availability_zone       = var.availability_zone
  instance_type           = var.temp_instance_type
  key_name                = var.linux_key_name
  vpc_security_group_ids  = [var.vpc_security_group_ids[var.region]]
  subnet_id               = var.db_subnet_id
  count                   = var.temp_count
  tags = {
    Name        = "RR-TEMP-V-DB-${format("%02d", count.index + 1)}"
    Environment = var.env_tag
  }
}

谢谢

标签: amazon-web-servicesamazon-ec2terraform

解决方案


我们作为用户数据的一部分完成,看起来类似于:

instance_name=$(aws ec2 describe-instances --instance-id $(curl -s http://169.254.169.254/latest/meta-data/instance-id) --query "Reservations[*].Instances[*].Tags[?Key=='Name'].Value" --region $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e "s/.$//") --output text)
sudo hostnamectl set-hostname --static $instance_name

推荐阅读