簡體   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