Manage F5 BIG-IP FAST with Terraform (Part 1 - Create multiple HTTP applications in the same tenant)
This is a green field scenario. Here we will use F5 BIG-IP FAST Terraform resources to create multiple HTTP applications in the same tenant.
Table of Content
- Table of Content
- Workflow for creating multiple HTTP applications in the same tenant
- Demo Video
- Resources
- Article Series
Workflow for creating multiple HTTP applications in the same tenant
First, we will create 5 files in ~/app1 to deploy a first application myApp3 in tenant scenario3:
- main.tf
- variables.tf
- inputs.tfvars
- outputs.tf
- providers.tf
variables.tf
variable bigip {}
variable bigip {}
variable username {}
variable password {}
inputs.tfvars
bigip = "10.1.1.9:443"
username = "admin"
password = "yYyYyYy"
providers.tf
terraform {
required_providers {
bigip = {
source = "F5Networks/bigip"
version = ">= 1.16.0"
}
}
}
provider "bigip" {
address = var.bigip
username = var.username
password = var.password
}
main.tf
resource "bigip_fast_http_app" "app1" {
application = "myApp3"
tenant = "scenario3"
virtual_server {
ip = "10.1.10.223"
port = 80
}
pool_members {
addresses = ["10.1.10.120", "10.1.10.121", "10.1.10.122"]
port = 80
}
snat_pool_address = ["10.1.10.50", "10.1.10.51", "10.1.10.52"]
load_balancing_mode = "least-connections-member"
monitor {
send_string = "GET / HTTP/1.1\\r\\nHost: example.com\\r\\nConnection: Close\\r\\n\\r\\n"
response = "200 OK"
}
}
outputs.tf
output "configJSON" {
value = bigip_fast_http_app.app1
sensitive = true
}
here is how run it:
$ cd ~/app1
$ terraform init -upgrade
$ terraform plan -var-file=inputs.tfvars -out scenario3app1
$ terraform apply "scenario3app1"
Second, we will create 5 files in ~/app2 to deploy a first application myApp3-1 in tenant scenario3::
- main.tf
- variables.tf
- inputs.tfvars
- outputs.tf
- providers.tf
variables.tf
variable bigip {}
variable bigip {}
variable username {}
variable password {}
inputs.tfvars
bigip = "10.1.1.9:443"
username = "admin"
password = "yYyYyYy"
providers.tf
terraform {
required_providers {
bigip = {
source = "F5Networks/bigip"
version = ">= 1.16.0"
}
}
}
provider "bigip" {
address = var.bigip
username = var.username
password = var.password
}
main.tf
resource "bigip_fast_http_app" "app2" {
application = "myApp3-1"
tenant = "scenario3"
virtual_server {
ip = "10.1.10.233"
port = 80
}
pool_members {
addresses = ["10.1.10.130", "10.1.10.131", "10.1.10.132"]
port = 80
}
snat_pool_address = ["10.1.10.53", "10.1.10.54", "10.1.10.55"]
load_balancing_mode = "round-robin"
monitor {
send_string = "GET / HTTP/1.1\\r\\nHost: example.com\\r\\nConnection: Close\\r\\n\\r\\n"
response = "302"
}
}
outputs.tf
output "configJSON2" {
value = bigip_fast_http_app.app2
sensitive = true
}
here is how run it:
$ cd ~/app2
$ terraform init -upgrade
$ terraform plan -var-file=inputs.tfvars -out scenario3app2
$ terraform apply "scenario3app2"
Demo Video
Resources
Terraform Registry documentation
Article Series
Manage F5 BIG-IP FAST with Terraform (Part 1 - Create multiple HTTP applications in the same tenant)
Published Nov 28, 2022
Version 1.0Patrick_Echeverria
Employee
Joined November 17, 2005
Fouad_Chmainy
Employee
Joined May 16, 2019
Guillermo_Gonzalez
Employee
Joined November 28, 2022
No CommentsBe the first to comment