2016-04-14 2 views
3

У меня есть две переменные среды. Один из них - TF_VAR_UN, а другой - TF_VAR_UN. Тогда у меня есть файл terraform, который выглядит так.Получение переменной окружения в конфигурации Terraform?

resource "google_container_cluster" "primary" { 
    name = "marcellus-wallace" 
    zone = "us-central1-a" 
    initial_node_count = 3 

    master_auth { 
     username = ${env.TF_VAR_UN} 
     password = ${env.TF_VAR_PW} 
    } 

    node_config { 
     oauth_scopes = [ 
      "https://www.googleapis.com/auth/compute", 
      "https://www.googleapis.com/auth/devstorage.read_only", 
      "https://www.googleapis.com/auth/logging.write", 
      "https://www.googleapis.com/auth/monitoring" 
     ] 
    } 
} 

Два значения я хотел бы заменить переменные окружения TF_VAR_UN и TF_VAR_UN являются имя пользователя и пароль значения. Я пробовал то, что показано выше, без каких-либо успехов, и я поиграл с несколькими другими вещами, но всегда получаю синтаксические проблемы.

ответ

4

Я бы попробовал нечто подобное, что кажется ближе к documentation.

variable "UN" {} 
variable "PW" {} 

resource "google_container_cluster" "primary" { 
name = "marcellus-wallace" 
zone = "us-central1-a" 
initial_node_count = 3 

master_auth { 
    username = ${var.UN} 
    password = ${var.PW} 
} 

node_config { 
    oauth_scopes = [ 
     "https://www.googleapis.com/auth/compute", 
     "https://www.googleapis.com/auth/devstorage.read_only", 
     "https://www.googleapis.com/auth/logging.write", 
     "https://www.googleapis.com/auth/monitoring" 
    ] 
} 

С командой CLI, расположенной ниже.

TF_VAR_UN=foo TF_VAR_PW=bar terraform apply 
+0

Задний 'терраформировать apply' part confused me about TF_VARS' Вы также можете просто «экспортировать TF_VAR_your_var» или иметь в виде точечного файла, например '.profile' – Mikeumus

0

для того, чтобы использовать переменную он должен быть обернут "" , например:

имя пользователя = "$ {var.UN}"