Terraform:AWS:使用user_data传递poweshell脚本

时间:2019-10-03 18:38:00

标签: powershell amazon-ec2 terraform

我试图将Powershell脚本作为IIS.txt中存在的文件CWD传递。

我没有看到脚本在服务器上运行。我不确定是否遗漏了一些东西。任何帮助将不胜感激。

resource "aws_instance" "db1" {
  ami           = "ami-1234567890"  
  instance_type = "t3.small"
  subnet_id     = "${aws_subnet.db.0.id}"
  key_name      = "ireland"
  user_data     = "${file("IIS.txt")}"

  tags = {
    Name = "sql node 1"
  }
}

1 个答案:

答案 0 :(得分:1)

我为此使用了template_file数据和local_file资源。

data "template_file" "user_data" {
  template = "${file("iis.txt")}"
}

resource "local_file" "user_data" {
  content  = "${data.template_file.user_data.rendered}"
  filename = "user_data-${sha1(data.template_file.user_data.rendered)}.ps"
}

然后更新您的local_file资源的user_data属性内容。

resource "aws_instance" "db1"
{
  ami           = "ami-1234567890"  
  instance_type = "t3.small"
  subnet_id     = "${aws_subnet.db.0.id}"
  key_name      = "ireland"
  user_data     = "${local_file.user_data.content}"
  tags =
  {
    Name = "sql node 1"
  }
}

这还使您可以更轻松地执行模板脚本,将TF变量等拉入模板并在部署之前及时渲染它。