Экспорт облачной конфигурации Google - PullRequest
0 голосов
/ 24 июня 2018

Есть ли способ экспортировать конфигурацию Google Cloud для объекта, например, для балансировщика нагрузки, таким же образом, как можно было бы настроить его через API?

Я могу быстро настроить, чтоМне нужно на сайте консоли, но я трачу кучу времени, пытаясь повторить это с Terraform.Было бы здорово, если бы я мог генерировать файлы Terraform или, по крайней мере, вывод API Google из системы, которую я уже настроил.

1 Ответ

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

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

Итак, если вы создали правило переадресации с именем terraform-test через консоль Google Cloud и хотите узнать, как оно отображается на ресурс Terraform google_compute_forwarding_ruleтогда вы можете запустить terraform import google_compute_forwarding_rule.default terraform-test, чтобы импортировать его в файл состояния Terraform.

Если вы затем запустили план, Terraform сообщит вам, что в его состоянии google_compute_forwarding_rule.default, но ресурс не определен в вашемкод и как таковой он захочет удалить его.

Если вы добавите минимальный конфиг, необходимый для работы плана:

resource "google_compute_forwarding_rule" "default" {
  name = "terraform-test"
}

И снова запустите план, Terraform затем скажет вам, чтовещи, которые нужно изменить, чтобы импортированное правило пересылки выглядело как конфигурация, которую вы определили.Предполагая, что вы сделали что-то вроде установки описания в плане балансировки нагрузки, план Terraform покажет что-то вроде этого:

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  ~ google_compute_forwarding_rule.default
      description:                              "This is the description I added via the console" => ""

Plan: 5 to add, 5 to change, 3 to destroy.

Это говорит о том, что Terraform хочет удалить описание правила переадресации, чтобы оно соответствовалоconfig.

Если вы затем обновите определение своего ресурса до чего-то вроде:

resource "google_compute_forwarding_rule" "default" {
  name        = "terraform-test"
  description = "This is the description I added via the console"
}

В плане Terraform появится пустой набор изменений:

No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.

На этом этапетеперь вы выровняли свой код Terraform с реальностью ресурса в Google Cloud и должны иметь возможность легко увидеть, что нужно установить на стороне Terraform, чтобы все происходило, как и ожидалось, в консоли Google Cloud.

...