【发布时间】:2018-11-09 06:37:36
【问题描述】:
我正在尝试从 AMI 创建一个 Windows Ec2 实例并在其上执行一个 powershell 命令:
data "aws_ami" "ec2-worker-initial-encrypted-ami" {
filter {
name = "tag:Name"
values = ["ec2-worker-initial-encrypted-ami"]
}
}
resource "aws_instance" "my-test-instance" {
ami = "${data.aws_ami.ec2-worker-initial-encrypted-ami.id}"
instance_type = "t2.micro"
tags {
Name = "my-test-instance"
}
provisioner "local-exec" {
command = "C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Scripts\\InitializeInstance.ps1 -Schedule",
interpreter = ["PowerShell"]
}
}
我面临以下错误:
- aws_instance.my-test-instance:错误运行命令 'C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule:退出状态 1. 输出:术语 'C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1' 未被识别为 cmdlet、函数、脚本文件的名称,或 可运行的程序。检查名称的拼写,或者路径是否 包括,验证路径是否正确,然后重试。在线:1 字符:72
- C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1
- CategoryInfo : ObjectNotFound: (C:\ProgramData...izeInstance.ps1:String) [], CommandNotFoundException
- FullyQualifiedErrorId : CommandNotFoundException
【问题讨论】:
-
文件 'C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1' 存在吗?
-
是的......它会在那里......但是在创建EC2实例之后......并且命令在创建后执行
-
您是否有理由不简单地将 powershell 脚本中的代码放入带有
<powershell></powershell>标签的 terraform 文档中? -
我也遵循了同样的方法,但我如何测试它是否执行?
标签: amazon-web-services powershell amazon-ec2 terraform