繁体   English   中英

Terraform depends_on

[英]Terraform depends_on

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

  1. 创建私钥(这个tf文件位于根目录)
  2. 运行 ec2-instance-module 的主文件(模块位于模块文件夹内)
  3. ec2-instance 资源(这是模块正在运行的资源)。 其中一项任务是复制一个文件(使用供应文件),供应者正在使用一个基于私钥的连接,该私钥应该在第 1 阶段创建。当我运行计划时,它失败了,如果我将供应文件上的注释运行 terraform(一切正常,文件已创建),之后,我将包含供应文件 - 由于文件已经存在,因此它将起作用。 我试图将“depends_on = [local_file.key]”添加到 ec2 资源实例,但没有成功

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

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"
}

## 运行位于根文件夹中的模块的主文件##

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 实例 - 位于 modules/ansible-server/main.tf 下 ##

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")      
    }   
  }
}

depends_on应该在模块上:

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]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM