#terraform #terraform0.11
#terraform #terraform0.11
Вопрос:
Итак, в terraform есть страница руководства о vault_approle_auth_backend_role:
resource "vault_auth_backend" "approle" {
type = "approle"
}
resource "vault_approle_auth_backend_role" "example" {
backend = vault_auth_backend.approle.path
role_name = "test-role"
token_policies = ["default", "dev", "prod"]
}
Но когда я копирую пример кода и пытаюсь запустить terraform init
, появляется ошибка:
Unknown token: vault_auth_backend.approle.path
Как я могу это исправить?
Я заметил, что backend
этот параметр является необязательным, могу ли я просто пропустить его? Я чувствую, что хотел бы установить его значение $VAULT_ADDR/v1/identity/oidc/role
или что-то в этом роде.
Если я использую backend = "${vault_auth_backend.approle.path}"
, он все равно отображается backend: "${vault_auth_backend.approle.path}"
при запуске terraform plan
.
Комментарии:
1. Какую версию Terraform вы используете? Это похоже на ошибку, которую вы получили бы в версиях Terraform до 0.12. Если это так, вы должны включить
terraform0.11
тег в свой вопрос и объяснить, почему вы не можете использовать версию, выпущенную за последние 18 месяцев.2. @ydaetskcoR ну, мы используем старую версию в моем текущем проекте.
3. Затем вам нужно использовать старый синтаксис HCL1, поэтому вы видите эту ошибку при попытке использовать синтаксис HCL2 (Terraform 0.12 ).
4. Конечно, но когда я использую
"${vault_auth_backend.approle.path}"
его, он все равно отображаетсяbackend: "${vault_auth_backend.approle.path}"
при запускеtf plan
.5. Это просто вычисленный результат. При запуске apply он вернет вычисленный результат, но он не знает, каким он будет во время планирования.