Terraform AWS-EC2 सुरक्षा समूह

Dec 29 2020

मैं टेराफॉर्म के बारे में अधिक जानने की कोशिश करने में काफी व्यस्त हूं लेकिन मुझे एक समस्या है कि मुझे काम करने के तरीके / सुधार के बारे में कोई सुराग नहीं है।

समस्या इस प्रकार है, मेरी स्क्रिप्ट में मैं एक E2 उदाहरण (AWS) उत्पन्न कर रहा हूं, जिसमें एक EIP और एक मॉड्यूल से सुरक्षा समूह की कुछ साइड चीजें हैं, जो सभी ठीक है। लेकिन मैं यह पता नहीं लगा सकता कि सुरक्षा समूह को मशीन से कैसे जोड़ा जाए, अब यह बनाया जा रहा है और यह यह है।

कोड निम्नानुसार है:

data "aws_ami" "latest" {
  most_recent = true
  owners = [ "self"] 

    filter {
      name = "name"
      values = [ lookup(var.default_ami, var.ami) ]
    }
}

module "aws_security_group" {
  source = "./modules/services/Security groups/"
  server_port = 443
}

resource "aws_instance" "test-ec2deployment" {
  ami                           = data.aws_ami.latest.id
  instance_type                 = var.instance_type
  subnet_id                     = var.subnet_id
  availability_zone             = var.availability_zone
  associate_public_ip_address   = var.public_ip
  
  root_block_device {
    volume_type                 = "gp2"
    volume_size                 = 60
    delete_on_termination       = true
  }
  
   tags = {
    Name                        = "Testserver2viaTerraform"
  }
}

resource "aws_eip" "ip" {
  instance = aws_instance.test-ec2deployment.id
}

resource "aws_eip" "example" {
  vpc = true
}

ऊपर मुख्य फ़ाइल है और मैं निम्नलिखित मॉड्यूल लोड कर रहा हूं:

resource "aws_security_group" "my-webserver" {
  name        = "webserver"
  description = "Allow HTTP from Anywhere"
  vpc_id      = "vpc-"
  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
  tags = {
    Name = "my-webserver"
    Site = "my-web-site"
  }
}

अंतिम चरण सुरक्षा समूह को मशीन से जोड़ रहा है लेकिन फिर से, कोई सुराग नहीं है कि यह कैसे करना है। मैं कई डॉक्स पढ़ रहा हूं और Google पर जाने की कोशिश कर रहा हूं लेकिन मुझे इसका जवाब नहीं मिल रहा है या जवाब मेरे काम नहीं आता है। तो उम्मीद है कि आप लोग आगे मेरी मदद कर सकते हैं।

अपने समय के लिए धन्यवाद, बहुत सराहना की!

जवाब

3 AsriBadlah Dec 29 2020 at 21:05

Aws_security_group मॉड्यूल में आपको निम्नलिखित ./modules/services/Security समूहों // main.tf द्वारा सुरक्षा समूह आईडी आउटपुट करने की आवश्यकता है

output "securitygroup_id" {
  value = aws_security_group.my-webserver.id
}

तब आपकी मुख्य tf फ़ाइल में इस तरह से आपके उदाहरण के लिए सुरक्षा समूह संलग्न करें:

resource "aws_network_interface_sg_attachment" "sg_attachment" {
  security_group_id    = module.aws_security_group.securitygroup_id
  network_interface_id = aws_instance.test-ec2deployment.primary_network_interface_id
}