Skip to content

Instantly share code, notes, and snippets.

@mikouaj
Last active March 2, 2021 16:05
Show Gist options
  • Save mikouaj/e982c7a5d8b3ca429991dad4f705ac15 to your computer and use it in GitHub Desktop.
Save mikouaj/e982c7a5d8b3ca429991dad4f705ac15 to your computer and use it in GitHub Desktop.
equinix-terraform-cisco-sdwan

equinix-terraform-cisco-sdwan

Example of Equinix Network Edge Cisco SDWAN virtual device. Cisco SDWAN is available in following configuration:

  • self-configured management mode
  • bring your own license (BYOL) licensing mode

DISCLAIMER

  • this is not an official example nor part of documentation and should be used for overview only
  • example is based on development version of Equinix Terraform provider. Check DEVELOPMENT.md for instructions on building and using development version of a provider.
provider "equinix" {
client_id = var.equinix_client_id
client_secret = var.equinix_client_secret
}
data "equinix_network_account" "test" {
metro_code = "SV"
status = "Active"
}
data "equinix_network_device_type" "test" {
category = "SDWAN"
vendor = "Cisco"
metro_codes = [data.equinix_network_account.test.metro_code]
}
data "equinix_network_device_platform" "test" {
device_type = data.equinix_network_device_type.test.code
flavor = "small"
}
data "equinix_network_device_software" "test" {
device_type = data.equinix_network_device_type.test.code
packages = ["ESSENTIALS"]
most_recent = true
}
resource "equinix_network_device" "test" {
byol = true
self_managed = true
license_file = "/path/to/license/bootstrap/file.cfg"
name = "tf-csrsdwan-ha-p"
throughput = 500
throughput_unit = "Mbps"
metro_code = data.equinix_network_account.test.metro_code
type_code = data.equinix_network_device_type.test.code
package_code = "ESSENTIALS"
notifications = ["test@test.com"]
term_length = 1
account_number = data.equinix_network_account.test.number
version = data.equinix_network_device_software.test.version
core_count = data.equinix_network_device_platform.test.core_count
vendor_configuration = {
siteId = "10"
systemIpAddress = "1.1.1.1"
}
acl_template_id = equinix_network_acl_template.acl-pri.id
secondary_device {
name = "tf-csrsdwan-ha-s"
metro_code = data.equinix_network_account.test.metro_code
notifications = ["test@test.com"]
account_number = data.equinix_network_account.test.number
license_file = "/path/to/license/bootstrap/file.cfg"
vendor_configuration = {
siteId = "10"
systemIpAddress = "2.2.2.2"
}
acl_template_id = equinix_network_acl_template.acl-sec.id
}
}
resource "equinix_network_acl_template" "acl-pri" {
name = "tf-tst-primary"
description = "Test ACL template"
metro_code = data.equinix_network_account.test.metro_code
inbound_rule {
subnets = ["10.1.0.0/16"]
protocol = "IP"
src_port = "any"
dst_port = "any"
}
}
resource "equinix_network_acl_template" "acl-sec" {
name = "tf-tst-secondary"
description = "Test ACL template"
metro_code = data.equinix_network_account.test.metro_code
inbound_rule {
subnets = ["10.2.0.0/16"]
protocol = "IP"
src_port = "any"
dst_port = "any"
}
}
terraform {
required_providers {
equinix = {
source = "developer.equinix.com/terraform/equinix"
}
}
}
equinix_client_id = "fillme"
equinix_client_secret = "fillme"
variable "equinix_client_id" {}
variable "equinix_client_secret" {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment