首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地形depends_on

地形depends_on
EN

Stack Overflow用户
提问于 2022-04-14 09:01:00
回答 1查看 535关注 0票数 0

我有一个执行以下操作的计划

  1. 创建私钥(此tf文件位于根上)运行EC2实例模块(模块位于模块
  2. 资源内)的
  3. 主文件(这是模块正在运行的内容)。其中一项任务是复制一个文件(使用一个提供程序文件),该提供程序使用的是基于一个应该在第1阶段上创建的私钥的连接。当我运行该计划时,它失败了,如果我将注释放在provisioner文件上,运行terraform (所有这些文件都在工作,并创建了该文件),然后,我将包括提供程序文件--它将工作,因为这些文件已经存在。我尝试将"depends_on = local_file.key"添加到ec2资源实例中,但它没有运行

##创建密钥文件-位于根文件夹##

代码语言:javascript
复制
resource "tls_private_key" "key" {
         algorithm = "RSA"
         rsa_bits  = 4096 
}
    
resource "aws_key_pair" "key" {
       key_name   = "project_key"
       public_key = tls_private_key.key.public_key_openssh
}
    
resource "local_file" "key" {
       sensitive_content  = tls_private_key.key.private_key_pem
       filename           = "key.pem"
}

##主文件,它运行位于根文件夹##上的模块

代码语言:javascript
复制
module "ansible-server"{
     source = "./modules/ansible-server"
     ami_id = "ami-04505e7fdc0741db8d"
     instance_type = var.ansible_server_instance-type
     availability_zone = var.availability_zone[0]
     subnet_id = module.public_subnet.publicsubnetid[0]
     vpc_id = module.vpc.vpcid
     key_name  = aws_key_pair.key.key_name

}

## Ec2实例-位于模块/ansible-server/main.tf ##下面

代码语言:javascript
复制
resource "aws_instance" "ansible_server" {
  ami               = var.ami_id
  instance_type     = var.instance_type
  availability_zone = var.availability_zone
  subnet_id = var.subnet_id
  vpc_security_group_ids  = [aws_security_group.ansible_server.id]
  key_name = var.key_name
  provisioner "file" {
    source     = "key.pem"
    destination = "/home/ubuntu/.ssh/id_rsa"
    connection {   
      host        = self.public_ip
      user        = "user"
      private_key = file("key.pem")      
    }   
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-04-14 09:12:29

depends_on应该位于模块上:

代码语言:javascript
复制
module "ansible-server"{
     source = "./modules/ansible-server"
     ami_id = "ami-04505e7fdc0741db8d"
     instance_type = var.ansible_server_instance-type
     availability_zone = var.availability_zone[0]
     subnet_id = module.public_subnet.publicsubnetid[0]
     vpc_id = module.vpc.vpcid
     key_name  = aws_key_pair.key.key_name

     depends_on = [local_file.key]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71869042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档