【问题标题】:Creating Filebeat configuration with Terraform使用 Terraform 创建 Filebeat 配置
【发布时间】:2018-08-23 03:14:17
【问题描述】:

我正在尝试在使用 Terraform 创建实例后创建 Filebeat 配置文件:

resource "local_file" "greylogIP" {
  content  = <<EOF
filebeat.inputs:
- type: log
  enabled: false
  paths:
    - /var/log/*.log
filebeat.config.modules:
  path: '$'{path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
output.logstash:
  hosts: ["${aws_instance.web.public_ip}:5014"]
  EOF
  filename = "filebeat.conf"
} 

我需要传递 ${aws_instance.web.public_ip} 变量来分配动态 IP,但 Terraform 也尝试插入 path: '$'{path.config}/modules.d/*.yml,这是 Filebeat 配置的一部分并引发错误。

如何将path: '$'{path.config}/modules.d/*.yml 作为字符串传递?

【问题讨论】:

    标签: terraform filebeat


    【解决方案1】:

    您需要用双美元 ($$) 转义字面美元 ($)。

    interpolation documentation 涵盖了这个:

    您可以使用双美元符号转义插值:$${foo} 将呈现为文字 ${foo}。

    template docs 中有进一步提及:

    重要提示:内联模板中的模板变量(例如上面的 consul_address)必须用双 $ 转义。 Terraform 通常会在执行模板之前处理未转义的插值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 2018-12-20
      • 2021-11-05
      • 1970-01-01
      • 2017-05-11
      • 2022-11-09
      • 2020-11-24
      相关资源
      最近更新 更多