Example Deployment Template
This chapter contains an example template to demonstrate deployment of your Traffic Manager infrastructure through the Terraform provider.
provider "vtm" {
base_url = "https://192.0.2.100:9070/api"
username = "admin"
password = "admin"
verify_ssl_cert = false
}
####################
# TIP GROUPS
####################
resource "vtm_traffic_ip_group" "web_tip" {
name = "web_tip"
enabled = true
ipaddresses = ["192.0.2.200"]
machines = ["192.0.2.250"]
}
####################
# POOLS
####################
resource "vtm_pool" "html_pool" {
name = "html_pool"
load_balancing_algorithm = "weighted_least_connections"
nodes_table {
node = "192.0.2.10:80"
weight = 1
}
nodes_table {
node = "192.0.2.11:80"
weight = 3
}
nodes_table {
node = "192.0.2.12:80"
weight = 3
state = "disabled"
}
}
resource "vtm_pool" "images_pool" {
name = "images_pool"
nodes_table {
node = "192.0.2.20:80"
}
nodes_table {
node = "192.0.2.21:80"
}
}
####################
# RULES
####################
resource "vtm_rule" "use_images_pool" {
name = "UseImagesPool"
content = <<EOF
if(http.getPath() == "/images") {
pool.use("${vtm_pool.images_pool.name}");
}
EOF
}
resource "vtm_rule" "redirect_to_https" {
name = "RedirectToHTTPS"
content = <<EOF
$hostHeader = http.getHostHeader();
http.redirect("https://" . $hostHeader);
EOF
}
####################
# SSL CERTS
####################
resource "vtm_server_key" "ssl_cert" {
name = "SSL-Cert"
note = ""
private = <<EOF
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEApEPRlK+xJbQfUenl9H4nLEkQaH5L8/9F+pcjJW14EdlSkI3s
6bPe+eGtWf0XSzDXzOqAufERWrKyhw21c+UYoTA64i43T9nwvlRtxXxcok+VqmqC
HMCT5V7d82DKXnEEE6J5LwmHo48MsaQsBrjeyGVA8n40JDoM3qC1IlYxEoqouRf8
5eYWYAugL1PSnMT71fZy6VUAaeFRVRwREc3RFxkKa9GEraCaDGp7jfmdrNH1A8Pn
ns3um6kWuRHIliewFhUmc1gTxoQurVTtQh/FQViA6UbQtVCcScYarjqo9dgcuz7R
ABCEBnTx7gcmDeB6VR7luN3MGTc8gupJOjNEawIDAQABAoIBAHl+s8/ulu7VJ+k1
P+EzQZQOwnUXHORuZfrvuI4hRpKlE91ZK+a7JGvcEJSjjowNpz+oHufotrZHv6YG
bLQ4uZvXCWZrWnvULa0I01wjHHzssj0mo+/SPFGFdlJhv6xUmPhQzqMMwGcoEfJ+
BBZAvH6p7Xyt/bDhws0TPoYUDB2yg0VN0lgdjg3S/xR2od8ggZBWow5DV3S0j5ta
QlLojcDgHh6MQ1VOHIUHhillHUKuhlHLhukUHUKhkHKLldMPUrqhmJCaGVSDGr9+
2pjPHz04fp7CZ264rmUyHCGhwhjz4FH1KqkVM5LxoKhbOobwivhrhI/g4skgPxfb
Y7lwxsECgYEA2JgEzk6tnCZO8UfiR+FSvCLWmFJAlHuFasUy8B0jpZIlRNxt88iZ
BhsHIJadC09fmMF6WdE1KTZgNnMnm675FDSSKjk12DhGzU/zRqaBh0NE/Lemqe8/
wwn3oLd3Z++zcRJj7P6NCoQN8BEIJ0voiqje+ppEkumfTQ8VEHxGEuECgYEAwiaN
F4W5Z0Y2EEnkwbz1w+Fzaur0g3balipfjt/Up4xWDnsMdP7xPzny2rGzfqfOpUOF
dRR2YwXGhAcTMpo+Nblg9/0YpJ500RDxMMYEj8bYjTaEFJQ4a7SSvki35pFM0/pT
smhyWA04U/ttbs3+XosN335JsbcopZfT3zF3zMsCgYBWDniCXAJgs1vURAJlGuKb
e6AV30BnfnhxBq8Jdhpus5V5Obe6D661HVIEobL+BmhuMhlhzFy55i/jeq9ua398
p7pn/x998Yb0FlsLbCa0zoZ/fpyKklOcM76eraaUtklumKb5R95UGknLY4kAzAk1
5ojJuzeZw5cWr/JnnWjeIQKBgE09explmBpPI4kdbMXrADeaxQk/SmHW8iWV3AiC
Yh76RO5j49PT7XSDAGwjEE8OQbccAsdOib7heFXkXq3eEWvcQYjHh3tOkxjtzZbi
4MO2j0a27pslUMEAyPStB4TSP6eByrSKuxruv38h4yqXB2Djn3RP0M/EF4axvZfp
HUk7AoGAL2OaOtwy5lk/Oc6bwuPjTAR0wmBX9zelgsLIPiON2jHY287syVzh7lPm
vQGRYZlbGMseXj++s9nQJ24gLTokX2FwGioKvXwFX1ujah7ccJR9iVEwKpQMtDY5
cTiUZkme5oO3Idw6IO115A2EB1/BPpoWBP0M+y2BQYuTGk8F2LU=
-----END RSA PRIVATE KEY-----
EOF
public = <<EOF
-----BEGIN CERTIFICATE-----
MIIDIDCCAgigAwIBAgIJAMD7f7Ux92lVMA0GCSqGSIb3DQEBCwUAMD4xCzAJBgNV
BAYTAkdCMRAwDgYDVQQHEwdkYXNkYXNkMQ0wCwYDVQQKEwRCbGFoMQ4wDAYDVQQD
EwVhLmIuYzAeFw0xODAxMjUyMzI3MDNaFw0yODAxMjUyMzI3MDNaMD4xCzAJBgNV
BAYTAkdCMRAwDgYDVQQHEwdkYXNkYXNkMQ0wCwYDVQQKEwRCbGFoMQ4wDAYDVQQD
EwVhLmIuYzCCASIwDQYJKoZIhvcNAQEhkhdakdhJLUihiQoCggEBAKRD0ZSvsSW0
H1Hp5fR+JyxJEWERWEewfrRtIyVteBHZUpCN7Omz3vnhrVn9F0sw18zqgLnxEVqy
socNtXPlGKEwOuIuN0/Z8L5UbcV8XKJPlapqghzAk+Ve3fNgyl5xBBOieS8Jh6OP
DLGkLAa43shlQPJ+NCQ6DN6gtSJWMRKKqLkX/OXmFmALoC9T0pzE+9X2culVAGnh
UVUcERHN0RcZCmvRhK2gmgxqe435nazR9QPD557N7pupFrkRyJYnsBYVJnNYE8aE
Lq1U7UIfxUFYgOlG0LVQnEnGGq46qPXYHLs+0QAQhAZ08e4HJg3gelUe5bjdzBk3
PILqSTozRGsCAwEAAaMhMB8wHQYDVR0OBBYEFOsQUOxzga482TRQfgcvWsOXHu3k
MA0GCSqGSIb3DQEBCwUAA4IBAQAOufUIugke4ZHRAXYmgM5cUX1MbBUs5S71u+Ao
79RfGkDL1kfvPdAoQx1/EoWc7LRIzvbuIZu6BiarU+/Te6mirmjF+dFdCfEka7cY
ZR5/BvU/+xJNEFDz2bEL0f4LTKnEiloEcUsHAt3vaqRdBGNt3vvpJ5FjyaDXjmpA
idvAjkqXEbUUBgt0kWuaQU8CDCv5FiGr9XhmK8YnoABCsyALbF+NP41EyUfZzt0Z
bj25+V9mexgCGRR6HJI9whhz33v51SXjxlAX5vsDiXRhfhLST7MBGamE6nqew2k9
cMbhPHfTIYYM1ijaqFU/LEXOQ6jTieldVIvC0KVSue7+eQtn
-----END CERTIFICATE-----
EOF
request = ""
}
####################
# VIRTUAL SERVERS
####################
resource "vtm_virtual_server" "http_vs" {
name = "HTTP"
enabled = true
pool = "discard"
port = 80
listen_on_any = false
listen_on_traffic_ips = ["${vtm_traffic_ip_group.web_tip.name}"]
request_rules = [
"${vtm_rule.use_images_pool.name}",
"${vtm_rule.redirect_to_https.name}",
]
web_cache_enabled = true
web_cache_refresh_time = 30
}
resource "vtm_virtual_server" "https_vs" {
name = "HTTPS"
enabled = true
pool = "${vtm_pool.html_pool.name}"
port = 443
listen_on_any = false
listen_on_traffic_ips = ["${vtm_traffic_ip_group.web_tip.name}"]
ssl_decrypt = true
ssl_server_cert_default = "${vtm_server_key.ssl_cert.name}"
}