# AWS BIG-IQ Terraform Module Terraform module that creates BIG-IQ Centralised Manager (CM) and Data Collection Devices (DCD) for AWS deployments. ## Usage ```hcl module "big_iq_byol" { source = "github.com/merps/terraform-aws-bigiq" aws_secretmanager_secret_id = "AWS Secrets Manager ID Reference" cm_license_keys = [ "XXXX-XXXX-XXXX-XXXX " ] dcd_license_keys = [ "XXXX-XXXX-XXXX-XXXX " ] ec2_key_name = "" vpc_id = "" vpc_mgmt_subnet_ids = [""] vpc_private_subnet_ids = [""] tags = { Terraform = "true" Environment = "dev" } } ``` ## Security instructions 1. F5 strongly recommends that you configure autoshutdown / whitelist the public IP addresses in the network security group you use to access the SSH port of the AWSinstances. (This template deploys a network security group with ports 22, 80, and 443 open to the public.) 2. Avoid enabling the `root` account on publicly exposed AWS instances. ## Inputs | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [adminName](#input\_adminName) | admin account name | `string` | `"admin"` | no | | [admin\_name](#input\_admin\_name) | Admin user on the BIG-IQ | `string` | `"admin"` | no | | [admin\_password](#input\_admin\_password) | Admin user on the BIG-IQ | `string` | n/a | yes | | [aws\_secretmanager\_secret\_id](#input\_aws\_secretmanager\_secret\_id) | AWS Secret Manager Secret ID that stores the BIG-IP password | `string` | n/a | yes | | [cm\_instance\_count](#input\_cm\_instance\_count) | Number of BIG-IPs to deploy | `number` | `1` | no | | [cm\_license\_keys](#input\_cm\_license\_keys) | BIG-IQ CM License Keys | `list(string)` | n/a | yes | | [dcd\_instance\_count](#input\_dcd\_instance\_count) | Number of BIG-IPs to deploy | `number` | `1` | no | | [dcd\_license\_keys](#input\_dcd\_license\_keys) | BIG-IQ DCD License Keys | `list(string)` | n/a | yes | | [dns\_search\_domains](#input\_dns\_search\_domains) | BIG-IQ DNS Search Domains | `list(string)` |
[
"test.local"
]
| no | | [dns\_servers](#input\_dns\_servers) | BIG-IQ DNS Servers | `list(string)` |
[
"169.254.169.253"
]
| no | | [ec2\_instance\_type](#input\_ec2\_instance\_type) | AWS EC2 instance type | `string` | `"m4.xlarge"` | no | | [ec2\_key\_name](#input\_ec2\_key\_name) | AWS EC2 Key name for SSH access | `string` | n/a | yes | | [f5\_ami\_search\_name](#input\_f5\_ami\_search\_name) | BIG-IP AMI name to search for | `string` | `"F5 Hourly BIG-IQ-8*"` | no | | [hostname](#input\_hostname) | BIG-IQ Hostname | `string` | `"buggered-thing-already"` | no | | [location](#input\_location) | n/a | `string` | `"apsoutheast2"` | no | | [masterkey](#input\_masterkey) | bigiq master key | `string` | `"ThisIsIt%1234"` | no | | [mgmt\_eip](#input\_mgmt\_eip) | Enable an Elastic IP address on the management interface | `bool` | `true` | no | | [mgmt\_subnet\_security\_group\_ids](#input\_mgmt\_subnet\_security\_group\_ids) | AWS Security Group ID for BIG-IP management interface | `list(any)` | n/a | yes | | [ntp\_servers](#input\_ntp\_servers) | BIG-IQ NTP Servers | `list(string)` |
[
"169.254.169.123"
]
| no | | [onboard\_log](#input\_onboard\_log) | Directory on the BIG-IP to store the cloud-init logs | `string` | `"/var/log/startup-script.log"` | no | | [personality](#input\_personality) | BIG-IQ Node Type (logging\_node/big\_iq) | `string` | `""` | no | | [prefix](#input\_prefix) | Prefix for resources created by this module | `string` | `"terraform-aws-bigiq-demo"` | no | | [private\_subnet\_security\_group\_ids](#input\_private\_subnet\_security\_group\_ids) | AWS Security Group ID for BIG-IP private interface | `list(any)` | n/a | yes | | [timezone](#input\_timezone) | BIG-IQ CM/DCD Deployed Time Zone | `string` | `"Australia/Sydney"` | no | | [vpc\_mgmt\_subnet\_ids](#input\_vpc\_mgmt\_subnet\_ids) | AWS VPC Subnet id for the management subnet | `list(any)` | n/a | yes | | [vpc\_private\_subnet\_ids](#input\_vpc\_private\_subnet\_ids) | AWS VPC Subnet id for the public subnet | `list(any)` | n/a | yes | ## Outputs | Name | Description | |------|-------------| | [cm\_discovery\_ips](#output\_cm\_discovery\_ips) | List of BIG-IQ DCD Private IP's | | [cm\_mgmt\_port](#output\_cm\_mgmt\_port) | HTTPS Port used for the BIG-IQ management interface | | [cm\_mgmt\_private\_ip](#output\_cm\_mgmt\_private\_ip) | List of BIG-IQ Private IP's | | [cm\_mgmt\_public\_ips](#output\_cm\_mgmt\_public\_ips) | List of BIG-IP public IP addresses for the management interfaces | | [cm\_public\_nic\_ids](#output\_cm\_public\_nic\_ids) | List of BIG-IQ public network interface ids | | [dcd\_discovery\_ips](#output\_dcd\_discovery\_ips) | List of BIG-IQ DCD Private IP's | | [dcd\_mgmt\_port](#output\_dcd\_mgmt\_port) | HTTPS Port used for the BIG-IQ management interface | | [dcd\_mgmt\_private\_ips](#output\_dcd\_mgmt\_private\_ips) | List of BIG-IQ CM Private IP's | | [dcd\_mgmt\_public\_ips](#output\_dcd\_mgmt\_public\_ips) | List of BIG-IP public IP addresses for the management interfaces | ### License #### Apache V2.0 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. #### Contributor License Agreement Individuals or business entities who contribute to this project must have completed and submitted the [F5 Contributor License Agreement](http://f5-openstack-docs.readthedocs.io/en/latest/cla_landing.html).