JSON Terraform中的多文件配置程序

时间:2017-09-06 17:09:43

标签: json terraform

"provisioner": {
    "file": {
        "connection": {
                "private_key": "${file(\"/KeyPair.pem\")}",
                "user": "id"
        },
        "content": "${template_file.x1}",
        "destination": "/path/to/dest1"

    },

    "file": {
            "connection": {
                    "private_key": "${file(\"/KeyPair.pem\")}",
                    "user": "id"
            },
            "content": "${template_file.x2}",
            "destination": "/path/to/dest2"
    }
}

这里我有一个JSON Terraform scriplet。我知道我必须合并/分组文件供应商,但我不太清楚如何做到这一点

我在验证时一直遇到错误。

SyntaxError: Duplicate key 'file' on line 78

我是否必须使用内联功能?

我认为这可能是正确的。任何人都可以确认吗?

"file": {
    "connection": {
        "private_key": "${file(\"/KeyPair.pem\")}",
        "user": "id"
    },
    "content": [
        "${template_file.1}",
        "${template_file.2}"
    ],
    "destination": [
        "/path/dest/",
        "/path/dest/"
    ]
}

1 个答案:

答案 0 :(得分:0)

请浏览官方样本here

因此,您应该将代码拆分为两个供应商部分。

"provisioner": {
    "file": {
        "connection": {
                "private_key": "${file(\"/KeyPair.pem\")}",
                "user": "id"
        },
        "content": "${template_file.x1}",
        "destination": "/path/to/dest1"

    }
}

"provisioner": {
    "file": {
            "connection": {
                    "private_key": "${file(\"/KeyPair.pem\")}",
                    "user": "id"
            },
            "content": "${template_file.x2}",
            "destination": "/path/to/dest2"
    }
}

如果要上传大量文件,则调配程序file支持文件夹/目录上载。请仔细阅读

https://www.terraform.io/docs/provisioners/file.html#directory-uploads

如果收到错误消息,请粘贴详细错误,否则很难提出建议。