首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Terraform部署多个user_data ps脚本

使用Terraform部署多个user_data ps脚本
EN

Stack Overflow用户
提问于 2021-06-23 04:05:31
回答 2查看 181关注 0票数 0

我已经编写了相当多的Terraform,并在aws实例启动期间部署了单个用户数据脚本。我只是使用了文件函数来调用powershell脚本的位置。这种方法适用于单用户数据脚本。

代码语言:javascript
复制
resource "aws_instance" "windows" {
     ...
     ...
     user_data  = file("./user-data/ConfigureWinRM.ps1")

现在,我希望在创建实例时执行两个脚本。我采取了类似的方法,并尝试了以下方法,但似乎没有执行这两个脚本。

代码语言:javascript
复制
user_data = join("\n", [file("./user-data/ConfigureWinRM.ps1"), file("./user-data/admin-pass.ps1")])

我尝试了template_file数据源,但这也不起作用。

代码语言:javascript
复制
data "template_file" "script1" {
  template = file("./user-data/ConfigureWinRM.ps1")
}

data "template_file" "script2" {
  template = file("./user-data/admin-pass.ps1")
}
代码语言:javascript
复制
user_data = join("\n", [data.template_file.script1.rendered, data.template_file.script2.rendered]) 

我还尝试了template_cloud_init数据源,但它不起作用。

代码语言:javascript
复制
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") 
  } 
} 
代码语言:javascript
复制
user_data = data.template_cloudinit_config.user-data.rendered 

任何建议都会很有帮助。谢谢!

EN

回答 2

Stack Overflow用户

发布于 2021-06-23 06:18:25

我想你在template_cloudinit_config上的part部分错过了content_type

示例

代码语言:javascript
复制
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") 
  } 
} 
票数 0
EN

Stack Overflow用户

发布于 2021-06-23 23:01:23

迭戈,谢谢你的建议。今天早上我做了很多测试,但还是遇到了问题。

我做了以下更改。

代码语言:javascript
复制
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

脚本似乎仍未运行。有什么想法吗?谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68090133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档