amazon-web-services - 使用 Terraforms 远程执行时的不一致
问题描述
我正在尝试创建三个 AWS EC2 实例,每个实例创建一个 EFS 卷并挂载它。然后我想将目录复制到 EC2 实例并将它们从我的本地计算机移动到挂载中。
我在使用 Terraform 时得到了一些奇怪的结果,在我的第一个 EC2 实例上,它似乎正在上传并将目录移动到所需的位置,第二个它只是将文件移动到没有目录,而第三个什么也不做,我不是收到任何错误,所以很难看出我哪里出错了。
下面是我的 EC2 资源代码。
resource "aws_instance" "node" {
count = var.node_count
ami = data.aws_ami.ecs.id
associate_public_ip_address = true
iam_instance_profile = aws_iam_instance_profile.huski_ec2.name
instance_type = "t2.micro"
key_name = format("huski_%d", count.index)
subnet_id = element(var.vpc_public_subnets, 0)
vpc_security_group_ids = [
aws_security_group.huski.id]
lifecycle {
create_before_destroy = true
prevent_destroy = false
}
depends_on = [
aws_key_pair.generated_key
]
user_data = join("\n",
[
"#!/bin/bash\necho ECS_CLUSTER=${var.ecs_cluster_name} > /etc/ecs/ecs.config",
data.template_file.script[count.index].rendered
])
provisioner "file" {
source = format("nodes/node_%d", count.index)
destination = "/var/tmp"
connection {
type = "ssh"
user = "ec2-user"
private_key = tls_private_key.huski[count.index].private_key_pem
host = self.public_dns
}
}
provisioner "remote-exec" {
inline = [
"sudo mv ${format("/var/tmp/node_%d/", count.index)} /mnt/efs_node_data/",
]
connection {
type = "ssh"
user = "ec2-user"
private_key = tls_private_key.huski[count.index].private_key_pem
host = self.public_dns
}
}
tags = {
Name = format("%d-terraform", count.index)
}
}
我是否错误地使用了供应商?
解决方案
推荐阅读
- android - 未解决的对视图模型的引用
- javascript - 如何在jQuery中调用特定元素
- python - 如何处理文本框的长度以适合 Matplotlib 中的一个子图?
- curl - 如何在 gitlab-ci 中使用变量在松弛通道中发送通知
- debugging - 如何找到 Firefox 的日志?
- c# - 如何在调试模式 (F5) 下运行/测试应用程序并在应用程序运行期间仍然显示输出窗口 (VS Express 2015)
- php - 在 HTML 上显示 MySQL SELECT 结果
- php - 我可以通过提供未暗示的参数来逃避依赖倒置原则吗?
- spring-boot - 有没有办法使用 Spring Boot 为队列动态设置 prefetchSize?
- segmentation-fault - 如何在 VHDL-2008 中使用带有通用列表的程序?