Terraform module to provision an openvpn instance.
This is a list of plugins that need to be installed previously to enjoy all the goodies of this configuration:
module "main" {
source = "hadenlabs/openvpn/aws"
version = "0.3.0"
providers = {
aws = aws
template = template
local = local
}
public_key = local.auth_public_key
private_key = local.auth_private_key
admin_user = "slovacus"
storage_path = "~/openvpn"
}Full working examples can be found in examples folder.
module "main" {
source = "hadenlabs/openvpn/aws"
version = "0.4.0"
providers = {
aws = aws
template = template
local = local
}
public_key = local.auth_public_key
private_key = local.auth_private_key
admin_user = "slovacus"
storage_path = "~/openvpn"
}
| Name | Version |
|---|---|
| terraform | >= 0.12.20, < 2.0 |
| aws | >=3.2.0 |
| null | >=0.1.0 |
| Name | Version |
|---|---|
| aws | >=3.2.0 |
| null | >=0.1.0 |
| Name | Source | Version |
|---|---|---|
| tags | hadenlabs/tags/null | >0.1 |
| Name | Type |
|---|---|
| aws_eip.this | resource |
| aws_instance.this | resource |
| aws_internet_gateway.this | resource |
| aws_key_pair.this | resource |
| aws_route.this | resource |
| aws_security_group.this | resource |
| aws_security_group_rule.egress | resource |
| aws_security_group_rule.ingress | resource |
| aws_subnet.this | resource |
| aws_vpc.this | resource |
| null_resource.openvpn_adduser | resource |
| null_resource.openvpn_download_configurations | resource |
| null_resource.openvpn_install | resource |
| null_resource.provision_core | resource |
| null_resource.provision_openvpn | resource |
| aws_ami.amazon_linux | data source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| admin_user | admin user | string |
"openvpn" |
no |
| instance_type | type instance | string |
"t2.micro" |
no |
| is_test | implement when is execute a test | bool |
false |
no |
| name | Solution name, e.g. 'app' or 'jenkins' | string |
n/a | yes |
| namespace | Namespace, which could be your organization name or abbreviation, e.g. 'eg' or 'cp' | string |
null |
no |
| private_key | private key | string |
n/a | yes |
| public_key | public key | string |
n/a | yes |
| rules_ingress | list rule for security group | list(object({ |
[] |
no |
| ssh_cidr | ssh cidr | string |
"0.0.0.0/0" |
no |
| ssh_port | port ssh | number |
22 |
no |
| ssh_user | user ssh | string |
"ubuntu" |
no |
| stage | Stage, e.g. 'prod', 'staging', 'dev', OR 'source', 'build', 'test', 'deploy', 'release' | string |
null |
no |
| storage_path | storage path keys to local | string |
"~/openvpn" |
no |
| subnet_cidr_block | subnet cidr block | string |
"10.0.0.0/16" |
no |
| tags | Additional tags (e.g. map('BusinessUnit','XYZ') |
map(string) |
{} |
no |
| vpc_cidr_block | vpc cidr block | string |
"10.0.0.0/16" |
no |
| Name | Description |
|---|---|
| instance | return instance openvpn |
| instance_ip | return instance openvpn elastic ip public |
| private_key | return filepath privatekey |
Got a question?
File a GitHub issue.
See Contributing.
This Module follows the principles of Semantic Versioning (SemVer).
Using the given version number of MAJOR.MINOR.PATCH, we apply the following constructs:
- Use the
MAJORversion for incompatible changes. - Use the
MINORversion when adding functionality in a backwards compatible manner. - Use the
PATCHversion when introducing backwards compatible bug fixes.
- In the context of initial development, backwards compatibility in versions
0.0.zis not guaranteed whenzis increased. (Initial development) - In the context of pre-release, backwards compatibility in versions
0.y.zis not guaranteed whenyis increased. (Pre-release)
Copyright Β© 2018-2025 Hadenlabs
All other trademarks referenced herein are the property of their respective owners.
The code and styles are licensed under the LGPL-3.0 license See project license..