Skip to content

equinix-labs/terraform-equinix-network-edge-nginx

Repository files navigation

Equinix Network Edge NGINX device creation Terraform module

Experimental terraform

terraform-equinix-network-edge-nginx is a Terraform module that utilizesTerraform provider for Equinix to create Network Edge NGINX device.

This module creates a NGINX single device, HA pair and Cluster based on configuration.

Usage

This project is experimental and supported by the user community. Equinix does not provide support for this project.

Install Terraform using the official guides at https://learn.hashicorp.com/tutorials/terraform/install-cli.

This project may be forked, cloned, or downloaded and modified as needed as the base in your integrations and deployments.

This project may also be used as a Terraform module.

To use this module in a new project, create a file such as:

# main.tf
provider "equinix" {
  client_id     = var.equinix_client_id
  client_secret = var.equinix_client_secret
}

module "nginx-single" {
  source                 = "equinix-labs/network-edge-device-nginx/equinix"
  name                   = "terraform-test-NGINX"
  hostname               = "terraform-nginx"
  metro_code             = "AT"
  account_number         = "123456"
  platform               = "small"
  software_package       = "STD"
  term_length            = 1
  notifications          = ["[email protected]"]
  additional_bandwidth   = 50
  mgmt_acl_template_uuid = equinix_network_acl_template.nginx-pri.id
  ssh_key = {
    userName = "johndoe"
    keyName  = equinix_network_ssh_key.johndoe.name
  }
}

Run terraform init -upgrade and terraform apply.

Requirements

Name Version
terraform >= 0.13
equinix ~> 1.14

Providers

Name Version
equinix ~> 1.14

Modules

No modules.

Resources

Name Type
equinix_network_device.cluster resource
equinix_network_device.non_cluster resource
equinix_network_device_platform.this data source
equinix_network_device_software.this data source
equinix_network_device_type.this data source

Inputs

Name Description Type Default Required
metro_code Device location metro code string n/a yes
name Device name string n/a yes
notifications List of email addresses that will receive device status notifications list(string) n/a yes
platform Device platform flavor that determines number of CPU cores and memory string n/a yes
software_package Device software package string n/a yes
ssh_key SSH public key for a device
object({
userName = string
keyName = string
})
n/a yes
term_length Term length in months number n/a yes
account_number Billing account number for a device string 0 no
additional_bandwidth Additional internet bandwidth for a device number 0 no
cluster cluster device attributes map(any)
{
"enabled": false
}
no
hostname Device hostname string "" no
interface_count Number of network interfaces on a device. If not specified, default number for a given device type will be used. number 10 no
mgmt_acl_template_uuid Identifier of an management ACL template that will be applied on a device string "" no
secondary Secondary device attributes map(any)
{
"enabled": false
}
no

Outputs

Name Description
account_number Device billing account number
cpu_count Device CPU cores count
ibx Device IBX center
id Device identifier
interfaces Device interfaces
license_status Device license status
memory Device memory amount
region Device region
secondary Secondary device attributes
software_version Device software version
ssh_ip_address Device SSH interface IP address
ssh_ip_fqdn Device SSH interface FQDN
status Device provisioning status

Examples

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published