Terraform данные пользователя передать подробности экземпляра - PullRequest
0 голосов
/ 25 ноября 2018

Мне нужно установить имя хоста и сеть по умолчанию в пользовательских данных для моего экземпляра gcp с помощью terraform (шаблон пользовательских данных yml, как показано ниже)

  serverInfo:
    serverId: 1
    hostname: ${hostname}
    defaultNetwork: ${defaultNetwork}

однако после некоторого исследования я понял, что этоэто довольно сложно.Насколько я понял, пользовательские данные конкурируют до фактического создания экземпляра (исправьте меня, если ошибся). Но имя хоста и сетевые данные станут доступны после создания экземпляра.Не могли бы вы предложить мне лучший способ сбора этой информации и обновления ее в пользовательских данных?

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Я нашел способ исправить проблему, поэтому в случае сведений о сети мы можем получить доступ к сети, как показано ниже, а затем извлечь сведения о ней, такие как cidr и т. Д. Однако для имени хоста мы можем указатьимя в пользовательских данных и cloud-init установят имя для нас.

   data "google_compute_subnetwork" "default-subnetwork" {
      project = "my-project"
      name   = "my-subnetwork"
      region = "us-central1"
    }
0 голосов
/ 25 ноября 2018
  • Если у вас есть все в одном бэкэнде (у вас есть одно состояние terraform, которое управляет всем), вы проверили, является ли какой-либо из выходных параметров экземпляра gcp действительным для вашей цели?Вы можете использовать их с фрагментом кода, как в следующих примерах:

google_compute_instance.name_of_your_instance.network_interface.0.network_ip

google_compute_instance.name_of_your_instance.self_link

  • Если у вас есть экземпляр gcp всерверная часть terraform, отличная от той, в которой вы используете пользовательские данные, может быть, вы можете получить детали с помощью terraform_remote_state (подробнее в https://www.terraform.io/docs/providers/terraform/d/remote_state.html). Приятно то, что это удаленное состояние доступно только для чтения, поэтому вы ничего не делаетеэто может повлиять на ваш экземпляр gcp.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...