获取文件内容作为Terraform输出

时间:2018-08-10 08:30:38

标签: amazon-web-services terraform systemd iaas

我具有Terraform配置,在其中我在AWS EC2实例上启动systemd服务。我需要grep该服务的日志并将其导出为Terraform输出。

启动hello.service时,它会记录一条这样的行(以及许多其他行):

Root Key: F4BF9F7FCBEDABA0392F108C59D8F4A38B38

我需要那条线成为Terraform输出。像这样:

resource "aws_instance" "instance" {

    provisioner "remote-exec" {
        //start hello.service
    }

}

output "rootKey" {
    value = "${}" //??
}

我希望rootKey输出为以下结果:

journalctl -u hello.service | grep "Root Key

正在aws_instance.instance

被执行

我如何得到它?

2 个答案:

答案 0 :(得分:1)

一种方法是使用外部数据源和一个包装脚本,该脚本执行journalctl -u hello.service | grep "Root Key"部分,以将根密钥还给您。

https://www.terraform.io/docs/providers/external/data_source.html

答案 1 :(得分:0)

您也可以使用 Matti Paksula 创建的 github 模块:https://github.com/matti/terraform-shell-resource

repo 有很好的描述和许多入门示例