A reusable and extensible Terraform module that provisions a Trivadis LAB Bastion Host for Oracle Cloud Infrastructure
It creates the following resources:
- A bastion host for a given VCN including an optional Apache Guacamole remote desktop gateway.
- Optional DNS zone registration for the public IP
- Optional n-number of bastion hosts for multiple VCNs. This is used to build several identical environments for a training and laboratory environment.
The module can be parametrized by the number of participants. This will then create n numbers of bastion hosts.
- An OCI account
- Install Terraform
- Create a Terraform Configuration
HINT This terraform module does use count
to create multiple identical resources. Due to this at least Terraform version 0.13.0+ is required.
The module is available in Terraform registry. You may either us it via registry or clone terraform-oci-tvdlab-bastion from github.
Add the module to the main.tf
with the mandatory parameter. Whereby the bastion_subnet
does expect a list of subnet IDs where to create the bastion hosts. Ideally create with the terraform module tvdlab-vcn.
module "tvdlab-bastion" {
source = "Trivadis/tvdlab-bastion/oci"
version = ">= 1.1.0"
# - Mandatory Parameters --------------------------------------------------
tenancy_ocid = var.tenancy_ocid
compartment_id = var.compartment_id
ssh_public_key = var.ssh_public_key
bastion_subnet = module.tvdlab-vcn.public_subnet_id
}
To create multiple bastion hosts in different VCNs just specify the numberOf_labs
parameter. The following example will create 3 bastion hosts in the provided subnets. It is expected that bastion_subnet
contains 3 different subnets.
module "tvdlab-bastion" {
source = "Trivadis/tvdlab-bastion/oci"
version = "1.0.0"
# - Mandatory Parameters --------------------------------------------------
tenancy_ocid = var.tenancy_ocid
compartment_id = var.compartment_id
ssh_public_key = var.ssh_public_key
bastion_subnet = module.tvdlab-vcn.public_subnet_id
numberOf_labs = 3
}
The module can be customized by a couple of additional parameter. See variables for more information about customisation. The folder examples does contain an example files for main.tf, variables.tf and terraform.tfvars.
- Oracle Cloud Infrastructure Documentation
- Terraform OCI Provider Documentation
- Terraform Creating Modules
- Docker based Guacamole Configuration oehrlis/guacamole
- terraform-oci-tvdlab-base A reusable and extensible Terraform module that provisions a Trivadis LAB on Oracle Cloud Infrastructure.
You find all releases and release information here.
Please file your bug reports, enhancement requests, questions and other support requests within Github's issue tracker.
- Describe your idea by submitting an issue
- Fork this respository
- Create a branch, commit and publish your changes and enhancements
- Create a pull request
Code derived and adapted from oracle-terraform-modules/terraform-oci-vcn and Hashicorp's Terraform 0.12 examples.
Copyright (c) 2019, 2020 Trivadis AG and/or its associates. All rights reserved.
The Trivadis Terraform modules are licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.