2017-06-17 5 views
1

の各インスタンスに一意のタグを設定すると、Terraformのaws_autoscaling_groupモジュールで作成された各EC2インスタンスに異なるタグ値を割り当てることができます。たとえば、4インスタンスのASGの場合はnode1、node2、node3およびnode4です。Terraform aws_autoscaling_groupモジュール

ありがとうございました。

答えて

2

AWSのオートスケーリンググループは、ASGのタグを作成するインスタンスにのみ(オプションで)伝播できます。 ASGのインスタンス数に基づいて動的タグ付けを行うことはできません。

これが本当に必要な場合は、インスタンスのユーザーデータに名前タグの内容を計算してから自分自身に戻す必要があります(もちろん、インスタンスには関連するIAM権限が必要ですこのため)。

ASGに含まれている番号を調べるには、トリッキーな場合があります(複数のインスタンスを同時に自動で追加するか、別のインスタンスが作成される前に自分自身でタグ付けされていないものもあります)独自のインスタンスIDを見つけ出し、それを使って一意のタグ付きの名前を作成することがより簡単にできます。

このような何かが、その場合に有用であるかもしれない: `I = $でINSTANCEため 1(AWS:

ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) 
CURRENT_NAME=$(aws ec2 describe-tags --filters Name=resource-id,Values=${ID} Name=key,Values=Name --query Tags[].Value --output text 
NEW_NAME=${CURRENT_NAME}-${ID} 

aws ec2 create-tags --resources ${ID} --tags Key=Name,Value=${NEW_NAME} 
+0

おかげydaetskcoRは、 は、私は同様の方法を使用してこの問題を解決してきました自動スケーリングインスタンス - 自動スケーリングインスタンス - クエリ 'AutoScalingInstances [*]。[InstanceId]' - 出力テキスト) do \t aws ec2 create-tags --resources $ INSTANCE --tags Key = Name、Value = " {{machine.name}} "$ i i = $((i + 1)) done' どちらも良い解決策です。 –

関連する問題