Infoblox NIOS Deployment on AWS Terraform module

This Terraform module creates an Infoblox NIOS appliance on AWS

Module Functions

The module is meant to be modular and can create all or none of the prerequiste resources needed for the NIOS AWS Deployment including:

  • VPC and Subnets for the Controller and SEs (configured with create_networking variable)
  • IAM Roles, Policy, and Instance Profile (configured with create_iam variable)
  • Security Groups for NIOS communication
  • AWS EC2 Instance using an official Infoblox AMI

Usage

This is an example of a NIOS deployment:

terraform {
  backend "local" {
  }
}
module "nios_aws" {
  source  = "slarimore02/infoblox-deployment/aws"
  version = "1.0.0"

  region = "us-west-1"
  aws_access_key = "<access-key>"
  aws_secret_key = "<secret-key>"
  create_networking = "false"
  create_iam = "false"
  custom_vpc_id = "vpc-<id>"
  custom_subnet_ids = ["subnet-<id>","subnet-<id>"]
  device_password = "<newpassword>"
  key_pair_name = "<key>"
  name_prefix = "<name>"
  custom_tags = { "Role" : "NIOS", "Owner" : "admin", "Department" : "IT" }
}
output "controller_info" {
  value = module.nios_aws.nios_public_address
}

Requirements

Name Version
terraform >= 0.13.6
aws ~> 3.25.0
null 3.0.0

Providers

Name Version
aws 3.25.0

Modules

No modules.

Resources

Name Type
aws_ec2_tag.custom_tags resource
aws_eip.mgmt resource
aws_iam_instance_profile.nios resource
aws_iam_role.vdiscovery resource
aws_instance.nios resource
aws_internet_gateway.nios resource
aws_network_interface.first resource
aws_network_interface.second resource
aws_route.default_route resource
aws_security_group.nios_sg resource
aws_subnet.nios_lan resource
aws_subnet.nios_mgmt resource
aws_vpc.nios resource
aws_ami.nios data source
aws_availability_zones.azs data source

Inputs

Name Description Type Default Required
aws_access_key The Access Key that will be used to deploy AWS resources string n/a yes
aws_secret_key The Secret Key that will be used to deploy AWS resources string n/a yes
boot_disk_size The boot disk size for the nios device number 250 no
create_iam Create IAM Service Account, Roles, and Role Bindings for NIOS bool "false" no
create_networking This variable controls the VPC and subnet creation for the nios device. When set to false the custom-vpc-name and custom-subnetwork-name must be set. bool "true" no
custom_subnet_ids This field can be used to specify a list of 2 existing VPC Subnets for the NIOS device with the 1st being for mgmt and 2nd for LAN. The create-networking variable must also be set to false for this network to be used. list(string) null no
custom_tags Custom tags added to AWS Resources created by the module map(string) {} no
custom_vpc_id This field can be used to specify an existing VPC for the device. The create-networking variable must also be set to false for this network to be used. string null no
device_password The password that will be used authenticating with the nios device. This password be a minimum of 8 characters and contain at least one each of uppercase, lowercase, numbers, and special characters string n/a yes
key_pair_name The name of the existing EC2 Key pair that will be used to authenticate to the nios device string n/a yes
name_prefix This prefix is appended to the names of the device and SEs string n/a yes
nios_cidr_block The CIDR that will be used for creating a subnet in the VPC when create_network=true - a /16 should be provided string "10.255.0.0/16" no
nios_version The nios device version that will be deployed string "8.5.2" no
nios_vm_model The NIOS VM Model used for the deployment. https://docs.infoblox.com/display/NAIG/Infoblox+vNIOS+for+AWS+AMI+Shapes+and+Regions string "TE-V825" no
public_address This variable controls if the device has a Public IP Address. When set to false the Ansible provisioner will connect to the private IP of the device. bool "true" no
region The Region that the nios device and SEs will be deployed to string n/a yes

Outputs

Name Description
nios_private_address The Private IP Addresses allocated for the NIOS
nios_public_address Public IP Addresses for the NIOS Device