A reusable and extensible Terraform module that provisions a Trivadis LAB on Oracle Cloud Infrastructure.
It creates the following resources:
- A VCN using Trivadis/terraform-oci-tvdlab-vcn
- An optional internet gateway
- An optional NAT gateway
- An optional service gateway
- An optional bastion host using Trivadis/terraform-oci-tvdlab-bastion
- An optional db host using Trivadis/terraform-oci-tvdlab-compute
- Optional n-number of base envrionments. 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 times the environment. The following figure shows a VCN with Basion host for the compartment O-SEC. i.e. resource_name
has been derivated from compartment name.
- 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-vcn from github.
Add the module to the main.tf
with the mandatory parameter.
module "tvdlab-base" {
source = "Trivadis/tvdlab-base/oci"
#source = "../terraform-oci-tvdlab-base"
version = ">= 1.0.0"
# - Mandatory Parameters --------------------------------------------------
region = var.region
compartment_id = var.compartment_id
tenancy_ocid = var.tenancy_ocid
ssh_public_key = var.ssh_public_key
}
To create multiple environments just specify the tvd_participants
parameter. The following example will create 3 VCN including corresponding bastion hosts.
module "tvdlab-base" {
source = "Trivadis/tvdlab-base/oci"
#source = "../terraform-oci-tvdlab-base"
version = ">= 1.0.0"
# - Mandatory Parameters --------------------------------------------------
region = var.region
compartment_id = var.compartment_id
tenancy_ocid = var.tenancy_ocid
ssh_public_key = var.ssh_public_key
tvd_participants = 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.tv and terraform.tfvars.
- Oracle Cloud Infrastructure Documentation
- Terraform OCI Provider Documentation
- Terraform Creating Modules
Currently none known.
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.