Size: a a a

2019 September 04

MK

Max Kovgan in terraform_ru
красота. т.е. мои изобретения уже вчерашний дождик 👍
источник

b

bykva in terraform_ru
bykva
  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"
 }
}
очень важно здесь сделать такую иерархию вызова модуля ansible-provisioner так, чтобы переменные для каждого вызова хранились в своей папке. И после этого если вы переиспользуете на разных платформах этот набор модулей важно запускать их так чтобы они не пересекались в одном месте одновременно. ну т.е. грубо говоря нельзя использовать одну и ту же папку с модулями для разных платформ если вы запускаете паралельно несколько терраформов. Потому что когда отработает local-exec самого позднего запущенного терраформа, каждый ансибл будет использовать его переменные а не свои =). Если нет нужды в одновременном запуске - то побарабану.
источник

YA

Yurii Abramkin in terraform_ru
приветсвую народ, а кто-то задавался вопросом как избижать хранения сикретов в репе при использовании terraform . Есть ли способ к примеру при выполнении terraform plan/apply поддтянуть ключи из внешнего хранилища? как это происходит с backend на S3.
к примеру использовать AWS. KMS  как хранилище и значение сикретов брать из него.   Это возможно?
источник

b

bykva in terraform_ru
источник

YA

Yurii Abramkin in terraform_ru
проблема в том что сам ваулт тоже нужно поднимать и суппорить. Тем же терраформ. Такая себе проблема курицы и яйца.
источник

VT

Victor Tur in terraform_ru
"One does not simply...keep secrets out .tfstate files" 😄👌
источник

YA

Yurii Abramkin in terraform_ru
а через data source может получить значени из AWS KMS на этапе запуска, что бы сработала Interpolation или как с backend Interpolation не доступна?
источник

VT

Victor Tur in terraform_ru
Yurii Abramkin
а через data source может получить значени из AWS KMS на этапе запуска, что бы сработала Interpolation или как с backend Interpolation не доступна?
источник

K

KK in terraform_ru
Всем привет !
Не получается засунуть данные в output из модуля

module "demo_app" {
 source             = "git::ssh://git@module_address?ref=master"
 namespace          = "default"
}


output "demo_output_demo_app_timeout" {
 value       =  module.demo_app.timeout
}


В чем может быть причина, кто сталкивался ?
источник

K

KK in terraform_ru
И любые другие данные не получается достать из модуля через output. Определены в одном файле, при построении плана эти данные имеются в модуле
источник

AK

Andrey Kartashov in terraform_ru
Yurii Abramkin
приветсвую народ, а кто-то задавался вопросом как избижать хранения сикретов в репе при использовании terraform . Есть ли способ к примеру при выполнении terraform plan/apply поддтянуть ключи из внешнего хранилища? как это происходит с backend на S3.
к примеру использовать AWS. KMS  как хранилище и значение сикретов брать из него.   Это возможно?
я использую sensitive.auto.tfvars, который указан в .gitignore. Всё
источник

AK

Andrey Kartashov in terraform_ru
так или иначе где-то на файлухе всё равно будут лежать секреты, которые позволяют terraform работать с инфраструктурой
источник

YA

Yurii Abramkin in terraform_ru
если один работаешь с инфраструктурой. такой подход даже очень ок. А когда 10ок оперейшенов. нужно где-то хранить. Но как же не хочется поднимать vault от hashicorp
источник

K

KK in terraform_ru
Yurii Abramkin
если один работаешь с инфраструктурой. такой подход даже очень ок. А когда 10ок оперейшенов. нужно где-то хранить. Но как же не хочется поднимать vault от hashicorp
у меня из data.Vault подтягиваются данные
источник

АО

Анатолий Облаухов in terraform_ru
Yurii Abramkin
приветсвую народ, а кто-то задавался вопросом как избижать хранения сикретов в репе при использовании terraform . Есть ли способ к примеру при выполнении terraform plan/apply поддтянуть ключи из внешнего хранилища? как это происходит с backend на S3.
к примеру использовать AWS. KMS  как хранилище и значение сикретов брать из него.   Это возможно?
Можно например в AWS systems manager в parameter store. Там есть шифрация
источник

АО

Анатолий Облаухов in terraform_ru
Но если это попадает в стейт, то в стейте это лежит прямым текстом. Пусть даже стейт и зашифрованный на S3, но если вдруг это попадает в файловую систему и не удаляется (например создался .tfstate.backup, что-то упало и он так и не удалился), то есть риск, что так и будет лежать в файловой системе
источник

b

bykva in terraform_ru
Анатолий Облаухов
Можно например в AWS systems manager в parameter store. Там есть шифрация
шифрация, ага
источник

АО

Анатолий Облаухов in terraform_ru
bykva
шифрация, ага
Ну чо начали)
источник

b

bykva in terraform_ru
да ничо, настроение не очень, надо было хоть к кому-то докопаться)

ну и шоб зря воздух не сотрясать, оффтоп вопрос (а вдруг)

Есть необходимость через терраформ (а если бы у кита был бы волосяной покров, то там бы были блохи) настраивать сеть в виртуалках, поднимаемых на вмваре. это параметр customization. в бубунтоподобных дистрах это проходит на ура, а в дебиане в файл interfaces помещается вместо ens160(например) слово ether. проблема в скрипте который парсит через ifconfig(sic!) список интерфейсов. так вот вопрос, кто-то это побеждал...?
источник

AK

Andrey Kartashov in terraform_ru
bykva
да ничо, настроение не очень, надо было хоть к кому-то докопаться)

ну и шоб зря воздух не сотрясать, оффтоп вопрос (а вдруг)

Есть необходимость через терраформ (а если бы у кита был бы волосяной покров, то там бы были блохи) настраивать сеть в виртуалках, поднимаемых на вмваре. это параметр customization. в бубунтоподобных дистрах это проходит на ура, а в дебиане в файл interfaces помещается вместо ens160(например) слово ether. проблема в скрипте который парсит через ifconfig(sic!) список интерфейсов. так вот вопрос, кто-то это побеждал...?
Скрипт поправить не вариант? Ну и не очень понятно, что именно на дебиане не так
источник