powershell - 如何使用 user_data(AWS 和 Terraform)传递 PowerShell 脚本?
问题描述
我正在尝试将 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"
}
}
解决方案
为此,我使用了 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"
}
然后更新user_data
local_file 资源的属性内容。
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 变量等拉入模板并在部署之前及时渲染。
推荐阅读
- c# - Unity - Firebase 实时数据库 - 在排行榜中获得我的排名
- javascript - React 中的纯类组件和普通类组件有什么区别?
- java - Java,有没有办法使用servlet输出流而不是覆盖来附加字节数组?
- vim - 如何使用 vim 或 sed 在匹配模式之前插入字符?
- javascript - 在创建对象时了解 JavaScript 中的“this”位置
- jsf - 如何在没有 CDI 的情况下使用 omnifaces 套接字?
- ansible - 在 Ansible 中使用 vars 和模板
- javascript - PHP如何默认输入字段
- html - HTML 图像不会出现在我的本地主机上。我的路径正确吗?
- linq - 基于方法的 linq 总是比基于查询的 linq 更好,还是有一些限制?