代码之家  ›  专栏  ›  技术社区  ›  Back2Basics

将Terraform“data consu_keys…”存储为env变量?

  •  0
  • Back2Basics  · 技术社区  · 6 年前

    在base.tf文件中,我有:

    data "consul_keys" "project_emails"{
      datacenter = "mine1"
      key {
        name = "notification_list"
        path = "project/notification_email_list"
      }
    }
    

    我想在我的python代码中使用这些consur变量。 我的想法是把它输出到一个文件。(所以不仅仅是另一个使用 "${project_emails.notification_list.construct}"

    如何将所有这些密钥保存到文件中以访问密钥?

    0 回复  |  直到 6 年前
        1
  •  2
  •   Martin Atkins    6 年前

    从Terraform配置导出数据的一般机制是 Output Values .

    output "project_emails" {
      value = data.consul_keys.project_emails.var.notification_list
    }
    

    你跑完之后 terraform apply 要在配置中执行操作,可以使用 the terraform output command

    terraform output -json
    

    您可以安排程序自行运行该命令,也可以先将该命令的输出重定向到磁盘上的静态文件,然后让程序读取该文件。


    对于使用Consul数据的长寿命应用程序,更常见的解决方案是运行 consul-template 在你的虚拟服务器上,让它直接访问领事馆。这种方法的一个优点是,如果Consul中的数据发生变化 领事模板 可以识别并立即更新模板文件,必要时重新启动程序。Terraform只能在你运行的时候从执政官那里读取 terraform plan 地形应用 ,因此它不能自动响应 可以。

    推荐文章