{"id":24131818,"url":"https://github.com/selcukcosan/f5-bigip_terraform","last_synced_at":"2025-10-08T14:53:30.687Z","repository":{"id":245506920,"uuid":"818454660","full_name":"selcukcosan/f5-bigip_terraform","owner":"selcukcosan","description":"Terraform configuration to create node, pool, monitor and virtual servers","archived":false,"fork":false,"pushed_at":"2024-06-21T22:58:40.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-01T07:30:02.491Z","etag":null,"topics":["f5","f5-bigip","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/selcukcosan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-21T22:37:54.000Z","updated_at":"2024-06-21T22:59:36.000Z","dependencies_parsed_at":"2024-06-22T13:45:54.634Z","dependency_job_id":null,"html_url":"https://github.com/selcukcosan/f5-bigip_terraform","commit_stats":null,"previous_names":["selcukcosan/f5-bigip_terraform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/selcukcosan/f5-bigip_terraform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selcukcosan%2Ff5-bigip_terraform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selcukcosan%2Ff5-bigip_terraform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selcukcosan%2Ff5-bigip_terraform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selcukcosan%2Ff5-bigip_terraform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/selcukcosan","download_url":"https://codeload.github.com/selcukcosan/f5-bigip_terraform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/selcukcosan%2Ff5-bigip_terraform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278963832,"owners_count":26076542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["f5","f5-bigip","terraform"],"created_at":"2025-01-11T21:31:24.714Z","updated_at":"2025-10-08T14:53:30.666Z","avatar_url":"https://github.com/selcukcosan.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# f5-bigip_terraform\r\n\r\nThis example Terraform configuration file will create node, monitor, pool, and virtual servers. The configuration uses F5 official Terraform module on https://github.com/F5Networks/terraform-provider-bigip\r\n\r\n\r\n# terraform init\r\n```bash\r\nterraform init\r\n\r\nInitializing the backend...\r\n\r\nInitializing provider plugins...\r\n- Reusing previous version of f5networks/bigip from the dependency lock file\r\n- Using previously-installed f5networks/bigip v1.16.2\r\n\r\nTerraform has been successfully initialized!\r\n```\r\n\r\n\r\n# terraform plan\r\n```bash\r\nterraform plan\r\n\r\nTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\r\n  + create\r\n\r\nTerraform will perform the following actions:\r\n\r\n  # bigip_ltm_monitor.monitor will be created\r\n  + resource \"bigip_ltm_monitor\" \"monitor\" {\r\n      + adaptive       = (known after apply)\r\n      + adaptive_limit = (known after apply)\r\n      + compatibility  = \"enabled\"\r\n      + destination    = (known after apply)\r\n      + id             = (known after apply)\r\n      + interval       = 5\r\n      + ip_dscp        = (known after apply)\r\n      + manual_resume  = (known after apply)\r\n      + mode           = (known after apply)\r\n      + name           = \"/Common/terraform_monitor\"\r\n      + parent         = \"/Common/http\"\r\n      + reverse        = (known after apply)\r\n      + send           = \"GET / HTTP/1.0\\\\r\\\\n\\\\r\\\\n\"\r\n      + time_until_up  = (known after apply)\r\n      + timeout        = 16\r\n      + transparent    = (known after apply)\r\n      + up_interval    = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_node.node will be created\r\n  + resource \"bigip_ltm_node\" \"node\" {\r\n      + address          = \"192.168.204.212\"\r\n      + connection_limit = (known after apply)\r\n      + dynamic_ratio    = (known after apply)\r\n      + id               = (known after apply)\r\n      + monitor          = \"/Common/gateway_icmp\"\r\n      + name             = \"/Common/terraform_dvwa\"\r\n      + rate_limit       = (known after apply)\r\n      + ratio            = (known after apply)\r\n      + session          = (known after apply)\r\n      + state            = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_pool.pool will be created\r\n  + resource \"bigip_ltm_pool\" \"pool\" {\r\n      + allow_nat              = \"yes\"\r\n      + allow_snat             = \"yes\"\r\n      + id                     = (known after apply)\r\n      + load_balancing_mode    = \"round-robin\"\r\n      + minimum_active_members = (known after apply)\r\n      + monitors               = [\r\n          + \"/Common/terraform_monitor\",\r\n        ]\r\n      + name                   = \"/Common/terraform-pool\"\r\n      + reselect_tries         = (known after apply)\r\n      + service_down_action    = (known after apply)\r\n      + slow_ramp_time         = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_pool_attachment.attach_node1 will be created\r\n  + resource \"bigip_ltm_pool_attachment\" \"attach_node1\" {\r\n      + connection_limit      = (known after apply)\r\n      + connection_rate_limit = (known after apply)\r\n      + dynamic_ratio         = (known after apply)\r\n      + id                    = (known after apply)\r\n      + node                  = \"/Common/terraform_dvwa:80\"\r\n      + pool                  = \"/Common/terraform-pool\"\r\n      + priority_group        = (known after apply)\r\n      + ratio                 = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_virtual_server.http will be created\r\n  + resource \"bigip_ltm_virtual_server\" \"http\" {\r\n      + default_persistence_profile    = (known after apply)\r\n      + destination                    = \"192.168.203.212\"\r\n      + fallback_persistence_profile   = (known after apply)\r\n      + firewall_enforced_policy       = (known after apply)\r\n      + id                             = (known after apply)\r\n      + ip_protocol                    = \"tcp\"\r\n      + mask                           = (known after apply)\r\n      + name                           = \"/Common/terraform_vs_http\"\r\n      + per_flow_request_access_policy = (known after apply)\r\n      + pool                           = \"/Common/terraform-pool\"\r\n      + port                           = 80\r\n      + profiles                       = (known after apply)\r\n      + snatpool                       = (known after apply)\r\n      + source                         = (known after apply)\r\n      + source_address_translation     = \"automap\"\r\n      + source_port                    = (known after apply)\r\n      + state                          = \"enabled\"\r\n      + trafficmatching_criteria       = (known after apply)\r\n      + translate_address              = \"enabled\"\r\n      + translate_port                 = \"enabled\"\r\n      + vlans_enabled                  = false\r\n    }\r\n\r\nPlan: 5 to add, 0 to change, 0 to destroy.\r\n```\r\n\r\n# terraform apply\r\n```bash\r\nterraform apply\r\n\r\nTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\r\n  + create\r\n\r\nTerraform will perform the following actions:\r\n\r\n  # bigip_ltm_monitor.monitor will be created\r\n  + resource \"bigip_ltm_monitor\" \"monitor\" {\r\n      + adaptive       = (known after apply)\r\n      + adaptive_limit = (known after apply)\r\n      + compatibility  = \"enabled\"\r\n      + destination    = (known after apply)\r\n      + id             = (known after apply)\r\n      + interval       = 5\r\n      + ip_dscp        = (known after apply)\r\n      + manual_resume  = (known after apply)\r\n      + mode           = (known after apply)\r\n      + name           = \"/Common/terraform_monitor\"\r\n      + parent         = \"/Common/http\"\r\n      + reverse        = (known after apply)\r\n      + send           = \"GET / HTTP/1.0\\\\r\\\\n\\\\r\\\\n\"\r\n      + time_until_up  = (known after apply)\r\n      + timeout        = 16\r\n      + transparent    = (known after apply)\r\n      + up_interval    = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_node.node will be created\r\n  + resource \"bigip_ltm_node\" \"node\" {\r\n      + address          = \"192.168.204.212\"\r\n      + connection_limit = (known after apply)\r\n      + dynamic_ratio    = (known after apply)\r\n      + id               = (known after apply)\r\n      + monitor          = \"/Common/gateway_icmp\"\r\n      + name             = \"/Common/terraform_dvwa\"\r\n      + rate_limit       = (known after apply)\r\n      + ratio            = (known after apply)\r\n      + session          = (known after apply)\r\n      + state            = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_pool.pool will be created\r\n  + resource \"bigip_ltm_pool\" \"pool\" {\r\n      + allow_nat              = \"yes\"\r\n      + allow_snat             = \"yes\"\r\n      + id                     = (known after apply)\r\n      + load_balancing_mode    = \"round-robin\"\r\n      + minimum_active_members = (known after apply)\r\n      + monitors               = [\r\n          + \"/Common/terraform_monitor\",\r\n        ]\r\n      + name                   = \"/Common/terraform-pool\"\r\n      + reselect_tries         = (known after apply)\r\n      + service_down_action    = (known after apply)\r\n      + slow_ramp_time         = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_pool_attachment.attach_node1 will be created\r\n  + resource \"bigip_ltm_pool_attachment\" \"attach_node1\" {\r\n      + connection_limit      = (known after apply)\r\n      + connection_rate_limit = (known after apply)\r\n      + dynamic_ratio         = (known after apply)\r\n      + id                    = (known after apply)\r\n      + node                  = \"/Common/terraform_dvwa:80\"\r\n      + pool                  = \"/Common/terraform-pool\"\r\n      + priority_group        = (known after apply)\r\n      + ratio                 = (known after apply)\r\n    }\r\n\r\n  # bigip_ltm_virtual_server.http will be created\r\n  + resource \"bigip_ltm_virtual_server\" \"http\" {\r\n      + default_persistence_profile    = (known after apply)\r\n      + destination                    = \"192.168.203.212\"\r\n      + fallback_persistence_profile   = (known after apply)\r\n      + firewall_enforced_policy       = (known after apply)\r\n      + id                             = (known after apply)\r\n      + ip_protocol                    = \"tcp\"\r\n      + mask                           = (known after apply)\r\n      + name                           = \"/Common/terraform_vs_http\"\r\n      + per_flow_request_access_policy = (known after apply)\r\n      + pool                           = \"/Common/terraform-pool\"\r\n      + port                           = 80\r\n      + profiles                       = (known after apply)\r\n      + snatpool                       = (known after apply)\r\n      + source                         = (known after apply)\r\n      + source_address_translation     = \"automap\"\r\n      + source_port                    = (known after apply)\r\n      + state                          = \"enabled\"\r\n      + trafficmatching_criteria       = (known after apply)\r\n      + translate_address              = \"enabled\"\r\n      + translate_port                 = \"enabled\"\r\n      + vlans_enabled                  = false\r\n    }\r\n\r\nPlan: 5 to add, 0 to change, 0 to destroy.\r\n\r\nDo you want to perform these actions?\r\n  Terraform will perform the actions described above.\r\n  Only 'yes' will be accepted to approve.\r\n\r\n  Enter a value: yes\r\n\r\nbigip_ltm_node.node: Creating...\r\nbigip_ltm_monitor.monitor: Creating...\r\nbigip_ltm_node.node: Creation complete after 0s [id=/Common/terraform_dvwa]\r\nbigip_ltm_monitor.monitor: Creation complete after 0s [id=/Common/terraform_monitor]\r\nbigip_ltm_pool.pool: Creating...\r\nbigip_ltm_pool.pool: Creation complete after 2s [id=/Common/terraform-pool]\r\nbigip_ltm_virtual_server.http: Creating...\r\nbigip_ltm_pool_attachment.attach_node1: Creating...\r\nbigip_ltm_pool_attachment.attach_node1: Creation complete after 0s [id=/Common/terraform-pool-/Common/terraform_dvwa:80]\r\nbigip_ltm_virtual_server.http: Creation complete after 1s [id=/Common/terraform_vs_http]\r\n\r\nApply complete! Resources: 5 added, 0 changed, 0 destroyed.\r\n```\r\n# Result\r\n\r\n\r\nMonitor, Node, Pool , Virtual Server has been created\r\n```\r\nltm monitor http terraform_monitor {\r\n    adaptive disabled\r\n    defaults-from http\r\n    destination *:*\r\n    interval 5\r\n    ip-dscp 0\r\n    recv none\r\n    recv-disable none\r\n    send \"GET / HTTP/1.0\\r\\n\\r\\n\"\r\n    time-until-up 0\r\n    timeout 16\r\n}\r\nltm node terraform_dvwa {\r\n    address 192.168.204.212\r\n    monitor gateway_icmp\r\n    session monitor-enabled\r\n    state up\r\n}\r\nltm pool terraform-pool {\r\n    members {\r\n        terraform_dvwa:http {\r\n            address 192.168.204.212\r\n            session monitor-enabled\r\n            state up\r\n        }\r\n    }\r\n    monitor terraform_monitor\r\n    slow-ramp-time 0\r\n}\r\nltm virtual terraform_vs_http {\r\n    creation-time 2023-02-22:20:56:30\r\n    destination 192.168.203.212:http\r\n    ip-protocol tcp\r\n    last-modified-time 2023-02-22:20:56:30\r\n    mask 255.255.255.255\r\n    pool terraform-pool\r\n    profiles {\r\n        tcp { }\r\n    }\r\n    serverssl-use-sni disabled\r\n    source 0.0.0.0/0\r\n    source-address-translation {\r\n        type automap\r\n    }\r\n    translate-address enabled\r\n    translate-port enabled\r\n    vs-index 69\r\n}\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fselcukcosan%2Ff5-bigip_terraform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fselcukcosan%2Ff5-bigip_terraform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fselcukcosan%2Ff5-bigip_terraform/lists"}