Size: a a a

2019 September 04

IB

Igor Bronovskyi in terraform_ru
Подскажите пожалуйста, как с помощью yamldecode вытянуть данные из YAML файла и использовать в сценарие
источник

AK

Andrey Kartashov in terraform_ru
Igor Bronovskyi
Подскажите пожалуйста, как с помощью yamldecode вытянуть данные из YAML файла и использовать в сценарие
источник

IB

Igor Bronovskyi in terraform_ru
locals {
 file_yaml = file("elk.yml")
}
output "elk" {
 value = yamldecode(local.file_yaml)
}

оно выдант json, а как от туда взять значение определенного ключа?
источник

AK

Andrey Kartashov in terraform_ru
Igor Bronovskyi
locals {
 file_yaml = file("elk.yml")
}
output "elk" {
 value = yamldecode(local.file_yaml)
}

оно выдант json, а как от туда взять значение определенного ключа?
> yamldecode("{\"hello\": \"world\"}")
{
 "hello" = "world"
}
> yamldecode("{\"hello\": \"world\"}")["hello"]
world
источник

AK

Andrey Kartashov in terraform_ru
не выдаст он json
источник

AK

Andrey Kartashov in terraform_ru
он объект отдаёт
источник

IB

Igor Bronovskyi in terraform_ru
источник

AK

Andrey Kartashov in terraform_ru
и?
источник

IB

Igor Bronovskyi in terraform_ru
как вытянуть например значения become ?
источник

AK

Andrey Kartashov in terraform_ru
yamldecode(local.file_yaml)[0]["become"]
источник

IB

Igor Bronovskyi in terraform_ru
Да. Спасибо!
источник

AK

Andrey Kartashov in terraform_ru
использовать tf для парсинга плейбука ansible - это сильно
источник

AK

Andrey Kartashov in terraform_ru
что-то я не понимаю в этой жизни :)
источник

IB

Igor Bronovskyi in terraform_ru
я не хочу дублировать значения переменных. В плейбуке они мне и так нужны (на сервере исполнять). Не хочу для terraform дублировать конфиг
источник

b

bykva in terraform_ru
а в чем проблема генерировать переменные терраформом? и подсовывать к плейбуку
источник

IB

Igor Bronovskyi in terraform_ru
можно и так. Может это и лучший способ. Попробую
источник

IB

Igor Bronovskyi in terraform_ru
выходил из того, что есть сейчас
источник

b

bykva in terraform_ru
  kubernetes_provision_vars = <<EOF
vsphere_user: "${var.vsphere_user}"
vsphere_password: "${var.vsphere_password}"
vsphere_host: "${var.vsphere_server}"
EOF


...


locals {
 ansible = "ansible-playbook -i ${var.inventory} ${(var.vars_file == "") ? "" : "-e @${var.vars_file}"}"
 vars_hash = "${sha512(var.vars)}"
}

resource "null_resource" "vars_file" {
 triggers = {
   content_hash = "${local.vars_hash}"
 }

 count = "${var.vars == "" ? 0 : 1}"

 provisioner "local-exec" {
   command = <<COMMAND
cat <<EOF > ${var.vars_file}
${var.vars}
${var.volatile_vars}
EOF
COMMAND
 }
}

resource "null_resource" "playbook" {
 triggers = {
   serial = "${var.serial}"
 }

 provisioner "local-exec" {
   command = "${local.ansible} -u ${var.vsphere_virtual_machine_template_user} -D ${var.provision_root}/${var.name}.yaml"
 }
}
источник

b

bykva in terraform_ru
синтаксис 0.12.х
источник

IB

Igor Bronovskyi in terraform_ru
списибо. Тоже под 0.12.х пишу
источник