on 12-Dec-2022 05:00
In this article, i will present a suite of use cases using the F5 BIG-IP Application Services Templates (FAST) Terraform resources introduced on the F5 BIG-IP Terraform Provider on version 1.16.
“HashiCorp Terraform is an infrastructure as code tool that lets you define both cloud and on-prem resources in human-readable configuration files that you can version, reuse, and share. You can then use a consistent workflow to provision and manage all of your infrastructure throughout its lifecycle. »
https://www.terraform.io/intro
"… but wait! Terraform is not a Configuration Management tool. I should use Ansible for that!”
True.
Terraform is not a config management tool and I would say: “use whatever you feel comfortable and happy working with”… but keep also that in mind:
F5 BIG-IP Application Services Templates (FAST) provides a way to streamline deployment of applications on F5 BIG-IP using templatized AS3 declarations. FAST enables users to deploy templated AS3-based configurations via a declarative API (with AS3 as the first use-case), as well as via a self-generated forms-based GUI.
The FAST Extension provides a toolset for templating and managing AS3 Applications on BIG-IP.
FAST is:
The documentation of F5 BIG-IP Application Services Templates (FAST) is located here.
The F5 BIG-IP Terraform resources leverage our F5 BIG-IP Application Service Templates.
F5 BIG-IP Application Service Templates resources allows to create a new item in the virtual server configuration like a pool or a monitor but also to reuse existing items.
Here an example of bigip_fast_https_app resources:
resource "bigip_fast_https_app" "this" {
application = "myApp4"
tenant = "scenario4"
virtual_server {
ip = "10.1.10.224"
port = 443
}
tls_server_profile {
tls_cert_name = "/Common/app4.crt"
tls_key_name = "/Common/app4.key"
}
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"
}
depends_on = [bigip_ssl_certificate.app4crt, bigip_ssl_key.app4key]
}
Manage F5 BIG-IP FAST with Terraform (Intro)