3

わかりました、これ以外のほとんどは機能しています...

新しい AWS サーバーをそれぞれ Chef Automate に登録するためのユーザー データ テンプレート ファイルがあります。Chef は、ユーザー データ スクリプトで設定された「node_name」によって各クライアントを参照します。これは、デフォルトではインスタンス ID です。しかし、Chef UI または「ナイフ ノード リスト」で表示する場合、インスタンス ID はユーザー フレンドリーではありません。テンプレートを使用して意味のある node_name を書き出すことができました。何かのようなもの:

data "template_file" "user-data-qa" {
  count = "${var.QA_numhosts}"
  template = "${file("userdata.tpl")}"
  vars {
    node_name = "${var.customer_name}-QA-${format("%d", count.index + 1)}"
  }
}

ただし、インスタンスを再構築すると、新しいインスタンスが同じ名前で新しく生成されたキーで登録しようとするため、Chef からエラーが発生します。

そのため、node_name に乱数サフィックスを追加しました。インスタンスが再構築されるたびに、この乱数を更新したいと考えています。最初の試みは、インスタンス ID を乱数の「キーパー」として設定することでした。これにより、サイクル エラーが発生しました: ( -> 「依存」を意味します) インスタンス -> ユーザー データ -> ランダム -> インスタンス

また、ランダム生成をダンプして、インスタンス ID の部分文字列を node_name に追加することも試みました。同じ問題ですが、サイクルは短くなります: インスタンス -> ユーザー データ -> インスタンス。

これを回避するためのアイデアはありますか?つまり、ユーザー データに挿入される node_name に文字列を追加し、その文字列はインスタンスが終了して再起動されるたびに更新する必要があります。Terraform からのサイクル エラーなし。

4

1 に答える 1