我已经编写了相当多的Terraform,并在aws实例启动期间部署了单个用户数据脚本。我只是使用了文件函数来调用powershell脚本的位置。这种方法适用于单用户数据脚本。
resource "aws_instance" "windows" {
...
...
user_data = file("./user-data/ConfigureWinRM.ps1")现在,我希望在创建实例时执行两个脚本。我采取了类似的方法,并尝试了以下方法,但似乎没有执行这两个脚本。
user_data = join("\n", [file("./user-data/ConfigureWinRM.ps1"), file("./user-data/admin-pass.ps1")])我尝试了template_file数据源,但这也不起作用。
data "template_file" "script1" {
template = file("./user-data/ConfigureWinRM.ps1")
}
data "template_file" "script2" {
template = file("./user-data/admin-pass.ps1")
}user_data = join("\n", [data.template_file.script1.rendered, data.template_file.script2.rendered]) 我还尝试了template_cloud_init数据源,但它不起作用。
data "template_cloudinit_config" "user-data" {
part {
filename = "ConfigureWinRM.ps1"
content = file("./user-data/ConfigureWinRM.ps1")
}
part {
filename = "admin-pass.ps1"
content = file("./user-data/admin-pass.ps1")
}
} user_data = data.template_cloudinit_config.user-data.rendered 任何建议都会很有帮助。谢谢!
发布于 2021-06-23 06:18:25
我想你在template_cloudinit_config上的part部分错过了content_type
示例
data "template_cloudinit_config" "user-data" {
part {
content_type = "text/x-shellscript"
content = file("./user-data/ConfigureWinRM.ps1")
}
part {
content_type = "text/x-shellscript"
content = file("./user-data/admin-pass.ps1")
}
} 发布于 2021-06-23 23:01:23
迭戈,谢谢你的建议。今天早上我做了很多测试,但还是遇到了问题。
我做了以下更改。
data "template_cloudinit_config" "user-data" {
base64_encode = true
part {
filename = "./user-data/ConfigureWinRM.ps1"
content_type = "text/x-shellscript"
content = data.template_file.script1.rendered
}
part {
filename = "./user-data/admin-pass.ps1"
content_type = "text/x-shellscript"
content = data.template_file.script2.rendered
}
}
user_data = data.template_cloudinit_config.user-data.rendered脚本似乎仍未运行。有什么想法吗?谢谢!
https://stackoverflow.com/questions/68090133
复制相似问题