【问题标题】:deploying multiple user_data ps scripts with Terraform使用 Terraform 部署多个 user_data ps 脚本
【发布时间】:2021-09-06 10:28:06
【问题描述】:

我已经编写了相当多的 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 

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

【问题讨论】:

    标签: amazon-web-services terraform


    【解决方案1】:

    我认为您在 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") 
      } 
    } 
    

    【讨论】:

      猜你喜欢
      • 2017-09-24
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 2019-01-13
      相关资源
      最近更新 更多