【问题标题】:How to deploy OpenVPN EC2 instance via Terraform? [closed]如何通过 Terraform 部署 OpenVPN EC2 实例? [关闭]
【发布时间】:2020-11-10 06:19:13
【问题描述】:

我正在尝试使用 Terraform 设置 OpenVPN,但没有找到任何方法。我想使用 terraform 来部署 OpenVPN ec2 服务器。如何让 OpenVPN AMI id 放置在 terraform 上?还是我必须部署传统的 ec2 ubuntu 服务器并手动安装 OpenVPN?

【问题讨论】:

标签: amazon-web-services amazon-ec2 terraform vpn openvpn


【解决方案1】:

您可以使用传统的 Ec2 实例并根据用户数据安装 OpenVPN。

你可以看看这个Github repository

Headless install

也可以无头运行脚本,例如无需等待用户输入,以自动方式进行。

示例用法:

AUTO_INSTALL=y ./openvpn-install.sh

# or

export AUTO_INSTALL=y
./openvpn-install.sh

安装 OpenVPN 后,您可以再次运行该脚本,您将可以选择:

Add a client
Remove a client
Uninstall OpenVPN

这是您可以尝试的 Terraform 代码

resource "aws_instance" "openvpn" {
  ami                         = "ami-0d2f82a622136a696" //us-west-2
  instance_type               = "t2.micro"
  vpc_security_group_ids      = ["${aws_security_group.vpn.id}"]
  associate_public_ip_address = true
  subnet_id                   = "${aws_subnet.PubSubnet2a.id}"
  iam_instance_profile        = "${aws_iam_instance_profile.aws-vpn-profile.name}"
  user_data                   = "${data.template_file.vpn.rendered}"
  tags = {
    Name = "${var.env_prefix_name}-vpn"
  }
}

data "template_file" "vpn" {
  template = "${file("bash_scripts/vpnuserdata.sh")}"

  vars = {
    region_name              = "${var.region}"
  }
}


vpnuserdata.sh

#!/usr/bin/env bash
set -x
/usr/bin/yum update -y
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
export AUTO_INSTALL=y
./openvpn-install.sh

【讨论】:

  • 嗨。只是快速的问题。 ami-0d2f82a622136a696 适用于哪个地区?
  • 嗨,@Marcin,这是给 us-west-2 的,它应该基于一些变量以使其与其他地区一起工作。
猜你喜欢
  • 2021-12-08
  • 1970-01-01
  • 2021-01-19
  • 2021-09-20
  • 2018-03-13
  • 2021-02-04
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
相关资源
最近更新 更多