Terraform увеличивает ресурс из существующего инвентаря - PullRequest
0 голосов
/ 12 июня 2018

Пожалуйста, извините, если это тупой вопрос.Я - новичок Terraform и пытаюсь определить наилучший подход для удовлетворения требований предприятия к именованию ресурсов.

Наша команда по управлению облаком определила схему именования для всех ресурсов, где у вас есть [region] [resource_type] [app_name] [instance 0001-999] [env] Так, например, у нас может быть что-то вроде следующего для vm:

uw1vmmyapp001dev
uw1vmmyapp002dev
etc.

Это все хорошо при развертывании с нуля, так как я просто использую {count.index} Однако теперь я пытаюсь определить, как развернуть дополнительные ресурсы и начать с ранее развернутых ресурсов (которые не были развернуты terraform).Существует ли стандарт терраформ для сбора существующего инвентаря, анализа текущих значений и начала увеличения с наибольшего номера экземпляра?(Я использовал случайные действия, но наша команда по управлению облаком быстро это сломала.)

Я действительно плохо справляюсь со своей формулировкой.Надеюсь, это имеет какой-то смысл?

О, я использую azurerm_virtual_machine

1 Ответ

0 голосов
/ 13 июня 2018

Это будет довольно сложно, когда нет разделительных символов ... это просто объединенная строка.Если бы был символ-разделитель, вы могли бы использовать split, чтобы разбить строку и узнать числовую часть.Также, похоже, источник данных не эквивалентен azurerm_virtual_machine для получения информации об именах.

Учитывая, что вам все равно придется вручную искать имя или идентификатор, чтобы импортировать информацию о текущих ресурсах.вы можете найти виртуальную машину с наибольшим номером, затем использовать что-то вроде следующего, чтобы добавить дополнительные виртуальные машины и увеличить число:

${var.region}${var.resource_type}${var.appname}${format("%03d", count.index + var.last_num)}${var.env}

Чтобы проверить, как это выглядит, вы можете посмотреть в этом примере:

variable "last_num" {
  default = 98
}

variable "region" {
  default = "uw"
}

variable "resource_type" {
  default = "vm"
}

variable "appname" {
  default = "myapp"
}

variable "env" {
  default = "dev"
}

resource "local_file" "foo" {
  count    = 3
  filename = "foo.text"
  content  = "${var.region}${var.resource_type}${var.appname}${format("%03d", count.index + 1 + var.last_num)}${var.env}"
}

Это дает вывод именования следующим образом:

  + local_file.foo[0]
      id:       <computed>
      content:  "uwvmmyapp099dev"
      filename: "foo.text"

  + local_file.foo[1]
      id:       <computed>
      content:  "uwvmmyapp100dev"
      filename: "foo.text"

  + local_file.foo[2]
      id:       <computed>
      content:  "uwvmmyapp101dev"
      filename: "foo.text"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...