windows - 在 Terraform 中的远程 Windows EC2 实例上执行 Powershell 脚本
问题描述
我正在 AWS 中启动一个 Windows EC2 实例。现在我想安装某些软件,如 OpenSSH 和其他一些任务,如在服务器创建后创建用户。如果我有 PowerShell 脚本,如何在远程实例上执行?
我有一个本地 PowerShell 脚本 - install_sft.ps1,我想在 AWS 中的远程 EC2 实例上执行。
我知道我需要使用“provisioner”,但无法弄清楚如何在 Windows 上使用它。
resource "aws_instance" "win-master" {
provider = aws.lmedba-dc
ami = data.aws_ssm_parameter.WindowsAmi.value
instance_type = var.instance-type
key_name = "RPNVirginia"
associate_public_ip_address = true
vpc_security_group_ids = [aws_security_group.windows-sg.id]
subnet_id = aws_subnet.dc1.id
tags = {
Name = "Win server"
}
depends_on = [aws_main_route_table_association.set-master-default-rt-assoc]
}
解决方案
您可以通过使用资源的user_data
参数来做到这一点aws_instance
:
resource "aws_instance" "win-master" {
...
user_data = "${base64encode(file(install_sft.ps1))}"
...
}
只需确保它install_sft.ps1
与您的 Terraform 代码位于同一目录中。
EC2 实例的用户数据脚本在首次启动时执行。有关更多详细信息,请参阅此处的 AWS 文档。
推荐阅读
- elasticsearch - 从 ElasticSearch 中查询未售出的产品
- arduino - RFM95 LoRa收发模块和ESP32之间如何连接SD卡
- c - 获取创建文件的位置
- windows - 在构建 Boost 时如何将版本信息添加到 Boost DLL?
- node.js - 在 pm2 配置中启动多个脚本
- reactjs - 重定向到登录页面后,显示 Toaster 消息
- django - Django 身份验证 JWT 与 Oauth2
- python - 使用 1d 列索引数组切片和填充 2d 数组
- mysql - MySql查询运行余额校正
- python - 生成器表达式与生成器函数以及令人惊讶的急切评估