面临登录到使用与弹性IP相关联的Terraform创建的堡垒的问题

时间:2019-08-19 18:48:39

标签: amazon-ec2 ssh connection terraform

我已经在Terranet中使用公用程序在公共子网中创建了堡垒主机,并将其与eip关联,并使用预配器将其连接到私有子网中的实例,但是与堡垒相关联的ip一旦与eip关联,便会更改。

这就是我现在正要面对的https://github.com/terraform-providers/terraform-provider-aws/issues/31

resource "aws_instance" "web" {
    ami = "ami-0b79fb3f0226ff299"
    availability_zone = "${data.aws_availability_zones.available.names[0]}"
    instance_type = "t2.micro"
    key_name = "${aws_key_pair.muneesh.key_name}"
    vpc_security_group_ids = ["${aws_security_group.web.id}"]
    subnet_id =  "${aws_subnet.public_subnet.0.id}"
    associate_public_ip_address = true
    source_dest_check = false
    tags = {
    Name = "Bastion_server"
    }


##################connecting to bastion #################

connection {
  host = "${aws_instance.web.public_ip}"
  user= "ec2-user"
  bastion_private_key = "${file("/home/muneesh/.keys/muneesh.pem")}"

  provisioner "remote-exec" {
    inline = ["echo 'CONNECTED to BASTION!'"]
  }
}

}


########################## connection to MAGENTO SERVER ###################

resource "null_resource" "connect_private" {
  connection {
    bastion_host = "${aws_instance.web.public_ip}"
    host         = "${aws_instance.web1.private_ip}"
    user         = "ec2-user"
    private_key  = "${file("/home/muneesh/.keys/magento.pem")}"
  }

  provisioner "remote-exec" {
    inline = [
        "echo 'CONNECTED to MAGENTO SERVER1!'",
         " sudo  mkdir /magento",
         " sudo yum update -y",
         " sudo useradd magento",
         " sudo yum install httpd24 -y",
         " sudo yum install gcc -y",
         " sudo yum install mysql -y",
         " sudo wget http://download.redis.io/redis-stable.tar.gz",
         "  tar -xvzf redis-stable.tar.gz",
         "  cd redis-stable && make",
         " sudo yum install telnet -y",
         "sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 ${aws_efs_file_system.magento-efs.dns_name}:/ /magento"
        ]
  }
}

############### CONNECTING MAGENTO SERVER 2 ############################

resource "null_resource" "connect_private1" {
  connection {
    bastion_host = "${aws_instance.web.public_ip}"
    host         = "${aws_instance.web2.private_ip}"
    user         = "ec2-user"
    private_key  = "${file("/home/muneesh/.keys/magento.pem")}"
  }

  provisioner "remote-exec" {
    inline = [
        "echo 'CONNECTED to MAGENTO SERVER2!'",
         " sudo  mkdir /magento",
         " sudo yum update -y",
         " sudo useradd magento",
         " sudo yum install httpd24 -y",
         " sudo yum install gcc -y",
         " sudo yum install mysql -y",
         " sudo wget http://download.redis.io/redis-stable.tar.gz && tar xvzf redis-stable.tar.gz && cd redis-stable && make",
         " sudo yum install telnet -y",
         "sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 ${aws_efs_file_system.magento-efs.dns_name}:/ /magento"
        ]
  }
}

##### Elastic Ip for bastion####


resource "aws_eip" "web-1" {
instance = "${aws_instance.web.id}"
vpc = true
}

我使用以上代码创建了堡垒和Web服务器。连接应通过与堡垒关联的弹性IP进行。我在这里提到了几个链接

https://github.com/hashicorp/terraform/issues/3216
https://github.com/terraform-providers/terraform-provider-aws/issues/31

没有运气。

谢谢。

0 个答案:

没有答案