series-using-f5-cloud-templates-to-change-big-ip-versions
4 TopicsUsing Cloud Templates to Change BIG-IP Versions - Azure
Introduction This article will make use of F5 cloud templates on GitHub to modify the BIG-IP versions for your public cloud deployments in Azure. This is part of an article series, so please review the “Concepts” as well as other articles within the series. Modifying BIG-IP Templates for Azure Cloud This section will show you how to modify the BIG-IP version in Azure deployments. The template deployment service in Azure is called Azure Resource Manager. Azure ARM BIG-IP Cloud Templates for Azure on GitHub There a few methods I tested, and I’ll do a “How To” for each. Check the Appendix for additional examples. Use Latest Template Release (no edits required) Use Previous Template Release (no edits required) Edit Latest Template to Deploy BIG-IP Versions 12.x Use Latest Template to Deploy Custom BYOL Uploaded Image Note: At the time of this article, the "Latest" template release version for F5 cloud templates in Azure is 9.4.0.0 and found under Tag 9.4.0.0 on GitHub. See Tag 9.4.0.0 Release Notes. Option #1: Use Latest Template Release (no edits required) This option lets you use templates without modification of code. Each release corresponds to a certain BIG-IP version (see Azure ARM Template Matrix), and the template is hard coded with the selection of one default BIG-IP version in Azure F5 cloud templates using variable bigIpVersion. The latest template can deploy BIG-IP versions 15.1 (default), 14.1, and "latest" which is 16.0 at the time of this article. If one of these versions are your version of choice, great! This section is for you. Here is an example to deploy BIG-IP version 14.1.4.2. Deploy BIG-IP with latest template release: Find your favorite BIG-IP template for Azure. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 9.4.0.0) Review the entire README for installation instructions Download template "azuredeploy.json" and parameters "azuredeploy.parameters.json" Edit parameters file bigIpVersion = 14.1.402000 Populate all remaining parameters Save file and deploy with your favorite method Azure will validate the template and launch a BIG-IP running 14.1.4.2 #Example deploying using Azure CLI az group deployment create -n myDeployment -g myRG1 \ --template-file azuredeploy.json \ --parameters @azuredeploy.parameters.json \ --parameters bigIpVersion=14.1.402000 Note: If you need to specify a more exact version or flavor of BIG-IP, try modifying the parameter customImageUrn. You can find available values in the Azure Offer List, so pick one that matches your deployment requirements and licensing model. For example, 1Gb Best PAYG 14.1.4.2 would be f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-1g-best-hourly:14.1.402000. Option #2: Use Previous Template Release (no edits required) If you don’t mind a previous template release (less fixes/features), AND you still don’t want to tweak template code, AND you still need a different BIG-IP version, AND the BIG-IP version is listed in the matrix then keep reading! Here is an example to deploy BIG-IP version 13.1.1.0. Find a previous template release to deploy BIG-IP version you desire: Decide what BIG-IP version you need (my example 13.1.1.0) Check the Azure ARM Template Matrix for BIG-IP Scroll down the list and you’ll see template release v7.0.0.2 It allows “latest, 14.1.003000, 13.1.100000” Click the link to review v7.0.0.2 template release notes Deploy BIG-IP with previous template release: Find your favorite BIG-IP template for Azure. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 7.0.0.2) Review the entire README for installation instructions Download template "azuredeploy.json" and parameters "azuredeploy.parameters.json" Edit parameters file bigIpVersion = 13.1.100000 Populate all remaining parameters Save file and deploy with your favorite method Azure will validate the template and launch a BIG-IP running 13.1.1.0 #Example deploying using Azure CLI az group deployment create -n myDeployment -g myRG1 \ --template-file azuredeploy.json \ --parameters @azuredeploy.parameters.json \ --parameters bigIpVersion=13.1.100000 OK...we made it this far, but you still don’t see the BIG-IP version you need. Keep reading! In the next section, we’ll tweak some templates! Option #3: Edit Latest Template to Deploy BIG-IP Versions 12.x So far, I have addressed using the different templates to deploy BIG-IP various versions. The same concept can also work to deploy a version 12.x BIG-IP assuming the image is still available in the marketplace. We’ll use the latest template version, make some minor edits to the code, and deploy the BIG-IP. First, we need to make sure the version number is available in marketplace. Here is an example to deploy BIG-IP version 12.1.5.3. Note: Version 12.x BIG-IP uses an older Azure WAAgent, and requires a specific management route Note: Review the knowledge article F5 support for GitHub software for any questions pertaining to support of templates and modified templates. Search for Azure image via Azure CLI: Open your favorite terminal Enter a search filter. Use “big-ip” as the starting filter value command = az vm image list -f big-ip --all Scroll through the list and find an available version for your specific BIG-IP flavor My desired version example = 12.1.5.3 My desired “flavor” = Best (all modules), 1Gb throughput, PAYG (hourly) Copy the “version” value and save for later (my example 12.1.503000) #Example search and results az vm image list -f big-ip --all #Output similar to this... …lots of images are listed { "offer": "f5-big-ip-best", "publisher": "f5-networks", "sku": "f5-bigip-virtual-edition-1g-best-hourly", "urn": "f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-1g-best-hourly:12.1.503000", "version": "12.1.503000" }, Deploy BIG-IP with edited latest template release: Find your favorite BIG-IP template for Azure. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 9.4.0.0) Review the entire README for installation instructions Download template "azuredeploy.json" and parameters "azuredeploy.parameters.json" Edit template file **Refer to EXAMPLE EDITS code snippet below Replace value of routeCmd with a management route for waagent Edit parameters file bigIpVersion = 12.1.503000 Populate all remaining parameters Save file and deploy with your favorite method Azure will validate the template and launch a BIG-IP running 12.1.5.3 #Example deploying using Azure CLI az group deployment create -n myDeployment -g myRG1 \ --template-file azuredeploy.json \ --parameters @azuredeploy.parameters.json \ --parameters bigIpVersion=12.1.503000 #Example Edits for Option #3: Edit Latest Template to Deploy BIG-IP Versions 12.x ############## ## routeCmd ## ############## #original "routeCmd": "route", #after replacing with mgmt route for WA agent "routeCmd": "[concat('tmsh create sys management-route waagent_route network 168.63.129.16/32 gateway ', variables('mgmtRouteGw'), '; tmsh save sys config')]", Note: If you need to specify a more exact version or flavor of BIG-IP, try modifying the parameter customImageUrn. You can find available values in the Azure Offer List, so pick one that matches your deployment requirements and licensing model. For example, 1Gb Best PAYG 12.1.5.3 would be f5-networks:f5-big-ip-best:f5-bigip-virtual-edition-1g-best-hourly:12.1.503000. Option #4: Use Latest Template to Deploy Custom BYOL Uploaded Image The final Azure option allows you to upload or create your own BIG-IP images and reference those images in F5 cloud template deployments. There is an existing how-to doc on F5 CloudDocs explaining how to upload a VHD to your Azure environment. Review first “When You Don’t Have Azure Marketplace Access”. I’ll walk through the high-level steps of the article below. Then we'll review the deploy steps which require another JSON code edit. Note: Custom images only allow BYOL licensing. Note: Review the knowledge article F5 support for GitHub software for any questions pertaining to support of templates and modified templates Upload/Create Custom Image: Obtain a VHD image file for the BIG-IP version you desire My example = 13.1.3.2 Download VHD file from https://downloads.f5.com and upload as-is Or...you can use F5 Image Generator too to make your own custom image Untar the Azure-F5_Networks-xxxxxx.tar.gz file (will result in single VHD file) Create Azure Storage account and container Recommend creating a folder in your storage container like “f5-images” Upload VHD file to Azure Storage Click the VHD file to review properties Copy the URL and save for later (my example https://<storage-account>.blob.core.windows.net/f5-images/F5_Networks-13.1.3.2-0.0.4-BYOL-_.vhd) The customImage parameter in the F5 cloud templates can reference the VHD URL value, or the templates can reference an Azure Image resourceID. Read the next “Optional” section to create an Azure Image. Otherwise, skip to “Deploy Custom BIG-IP Image with Latest Template”. Note: If you don’t create an Azure Image resource prior to deployment, the templates will automatically create an Azure Image (source = VHD file) in the same resource group. Optional - Create Azure Image from VHD File via Azure CLI: Create Azure Image command = az image create --name xxxx --resource-group xxxx --os-type Linux --source https://xxxx/file.vhd Copy the “id” value and save for later (my example /subscriptions/xxxx-xxxx-xxxx-xxxx-xxxx/resourceGroups/myRG1/providers/Microsoft.Compute/images/F5_Networks-13.1.3.2-0.0.4-BYOL-2slot) #Example image create and results az image create --name F5_Networks-13.1.3.2-0.0.4-BYOL-2slot \ --resource-group myRG1 \ --os-type Linux \ --source https://mystorage123.blob.core.windows.net/f5-images/F5_Networks-13.1.3.2-0.0.4-BYOL-_.vhd #Output similar to this... { "hyperVgeneration": "V1", "id": "/subscriptions/xxxx/resourceGroups/myRG1/providers/Microsoft.Compute/images/F5_Networks-13.1.3.2-0.0.4-BYOL-2slot", Deploy custom BIG-IP image with latest template release: Find your favorite BIG-IP template for Azure. I’ll use the BIG-IP, standalone, 3nic, BYOL licensing (Tag 9.4.0.0) Review the entire README for installation instructions Download template "azuredeploy.json" and parameters "azuredeploy.parameters.json" Edit parameters file bigIpVersion = 13.1.302000 customImage = /subscriptions/xxxx/resourceGroups/myRG1/providers/Microsoft.Compute/images/F5_Networks-13.1.3.2-0.0.4-BYOL-2slot Populate all remaining parameters Save file and deploy with your favorite method Azure will validate the template and launch a BIG-IP running 13.1.3.2 #Example deploying using Azure CLI az group deployment create -n myDeployment -g myRG1 \ --template-file azuredeploy.json \ --parameters @azuredeploy.parameters.json \ --parameters bigIpVersion=13.1.302000 You can use the customImage method to also deploy a version 12.x that you download from https://downloads.f5.com or create with F5 Image Generator. Note: If you decide to use a v12.x BIG-IP image, make sure to review the Appendix Option 4a section for an example on how to modify the routes as required by v12.x and the Azure WAAgent in the routeCmd variable. Summary That is a wrap! There’s lots of info in this post, and I hope it makes your job easier in deciding what template to choose when deploying various versions of BIG-IP devices in the Azure public cloud. Appendix Option #4a: Edit Latest Template to Deploy Custom BYOL Uploaded Image 12.x The same method in Option #4 “Use Latest Template to Deploy Custom Uploaded Image” can also work to deploy a version 12.1.x BIG-IP version that you download from F5 Downloads and upload as BYOL. I’ll summarize the steps here since the full steps are already listed in Option #4. Note: Custom images only allow BYOL licensing. Note: Version 12.1.x BIG-IP uses an older Azure WAAgent, and requires a specific management route as illustrated by the routeCmd. Download BIG-IP v12.x version from Azure folder on https://downloads.f5.com My example LTM/DNS 1 boot slot = Azure-F5_Networks-BIGIP-12.1.5.30.0.5-size_45GB.vhd.tar.gz Untar file, upload resulting VHD file to Azure storage My example = F5_Networks-BIGIP-12.1.5-30.0.5-size_45GB.vhd Select newly uploaded VHD file, review properties, save VHD URL for later My example = https://<storage-account>.blob.core.windows.net/f5-images/F5_Networks-BIGIP-12.1.5-30.0.5-size_45GB.vhd Optionally...create Azure Image from VHD and save resourceID for later My example = /subscriptions/xxxx/resourceGroups/myRG1/providers/Microsoft.Compute/images/F5_Networks-12.1.5-30.0.5-BYOL-2slot Find your favorite BIG-IP template for Azure. I’ll use the BIG-IP, standalone, 3nic, BYOL licensing (Tag 9.4.0.0) Review the entire README for installation instructions Download template "azuredeploy.json" and parameters "azuredeploy.parameters.json" Edit template file **Refer to EXAMPLE EDITS code snippet below Replace value of routeCmd with a management route for waagent Edit parameters file bigIpVersion = 12.1.503000 customImage = /subscriptions/xxxx/resourceGroups/myRG1/providers/Microsoft.Compute/images/F5_Networks-12.1.5-30.0.5-BYOL-2slot Populate all remaining parameters Save file and deploy with your favorite method Azure will validate the template and launch a BIG-IP running 12.1.5.3 #Example deploying using Azure CLI az group deployment create -n myDeployment -g myRG1 \ --template-file azuredeploy.json \ --parameters @azuredeploy.parameters.json \ --parameters bigIpVersion=12.1.503000 #Example Edits for Option #4a: Edit Latest Template to Deploy Custom Uploaded Image 12.x ############## ## routeCmd ## ############## #original "routeCmd": "route", #after replacing with mgmt route for WA agent "routeCmd": "[concat('tmsh create sys management-route waagent_route network 168.63.129.16/32 gateway ', variables('mgmtRouteGw'), '; tmsh save sys config')]",1.2KViews4likes2CommentsUsing Cloud Templates to Change BIG-IP Versions - Concepts
Introduction This article series will detail how you can deploy F5 into a public cloud leveraging cloud templates. This article will first cover some of the basic concepts, and we then go into some deployment guidance specific for the most common public clouds. In this article series, we will be using F5 cloud templates (available on GitHub) to modify the BIG-IP versions for your public cloud deployments. I will also share a few ways to use cloud templates in order to deploy the latest or previous stable releases of BIG-IP. Topics covered: F5 Cloud Templates Overview Image Repository Template Versions and BIG-IP Versions F5 BIG-IP Custom Images F5 Cloud Templates Next Steps...Go Read the How-To Articles! F5 Cloud Templates Overview Given the range of F5 products and the numerous public cloud providers,the F5 product teams have created quite the collection of cloud templates. These are located on GitHub with various BIG-IP templates for each cloud provider. Each template enables you to deploy BIG-IP devices in your cloud environment using different designs, licensing models, and features like load balancing, web application security, or all the BIG-IP modules - all these across a range of BIG-IP versions! GitHub For those of you who are unfamiliar with our F5 cloud templates, I encourage you to head over to GitHub and review the available templates. Each template has a corresponding README with relevant install info. These templates take care of various dependencies like network setup, access list updates, public IP creation, BIG-IP creation, HA cluster, auto scale, and more. BIG-IP Cloud Templates for AWS BIG-IP Cloud Templates for Azure BIG-IP Cloud Templates for Google F5 CloudDocs Also...head over to F5 CloudDocs for BIG-IP virtual edition (VE) for some quickstart installation and docs. F5 CloudDocs is a key resource that details important features, capabilities and usage guidance across the range of F5’s Cloud offerings. Support If you find yourself running into issues and require support, don't hesitate to open a GitHub issue on the relevant repo and create a GitHub "issue". You also have the ability to create a ticket with F5 support on https://support.f5.com. Review the F5 support policies regarding GitHub F5 repositories to learn what is and is not covered. When in doubt, reach out to your friendly F5 account team! Image Repository Each cloud provider has a public marketplace where vendors like F5 can upload images of their products, like BIG-IP. The cloud provider marketplace can be used as an image repository...with some important caveats, of course. The marketplace for each cloud provider has limits on the number of images for each vendor. As new versions of BIG-IP are released, F5 removes previous versions from marketplace to make room for the new versions. Customers relying on previous BIG-IP releases are encouraged to archive those specific BIG-IP versions in their own private image repository for each cloud provider. You can do this by uploading a BIG-IP cloud image to the cloud provider. It then becomes an available image ID for deployment. Grab these images from https://download.f5.com and look for your specific cloud provider. Template Versions and BIG-IP Versions There are two types of “versions” to discuss. One...the F5 cloud template versions. Two...the BIG-IP version. F5 Cloud Template Versions The F5 cloud templates are updated regularly and tagged with a release number. The templates are tested against the latest (aka newest) BIG-IP version available in marketplace at the time of template release and allow the user to select other versions of BIG-IP too. There is a Template-to-BIG-IP Version matrix for each cloud provider, and this tells you the various template versions and BIG-IP versions supported for that specific template release. It is recommended to always use the latest template release because it includes the most recent template fixes and improvements. You can select the matrix links below and then click on the tag/release version to see release notes. AWS CFT Template Matrix Azure ARM Template Matrix Google GDM Template Matrix BIG-IP Versions As for BIG-IP versions and what is supported in each cloud provider, please review the BIG-IP VE Support Platforms. This will list the recommended instance types/sizes and licensing for each cloud provider. Note: Best practice is to always use the latest templates as they are most up to date with the latest features and fixes for templated deployment of BIG-IP devices. This article series has workarounds that I have tested in my lab in order to help you deploy various versions of BIG-IP. If you decide to use a previous template version, then check the release notes to determine if your deployment is affected by any of the items noted (features, fixes, workarounds). F5 BIG-IP Custom Images All that talk about vendor images, public marketplace, private images...oh my! What happens if you need to customize your own image, patch it, do something magical to it? What happens if the image you need on public marketplace is no longer there? Enter the F5 Custom Image Builder! Use the F5 BIG-IP Image Generator Tool to create custom images from the .ISO file for F5 BIG-IP VE releases or for hot-fixes. You can then upload that image to the cloud provider and reference it in your template deployments. The F5 Virtual Edition (VE) team developed the F5 BIG-IP Image Generator internally to do the following: Create custom images from the .ISO file for F5 BIG-IP VE releases or for hot-fixes that are not available on the various public cloud marketplaces. Provide pre-deployment file customization of BIG-IP (for example, SSH keys, trusted certificates, custom packages, and so forth). Automatically publish images to public cloud providers. Simplify deployment workflows, such as encrypting custom images in AWS (prevents launching an instance in the marketplace first). Next Steps In the rest of the articles in this series, I will discuss HOW TO modify cloud templates to change BIG-IP versions for AWS, Azure, and Google cloud offerings.610Views2likes1CommentUsing Cloud Templates to Change BIG-IP Versions - AWS
Introduction This article will make use of F5 cloud templates on GitHub to modify the BIG-IP versions for your public cloud deployments in AWS. This is part of an article series, so please review the “Concepts” as well as other articles within the series. Modifying BIG-IP Templates for AWS Cloud This section will show you how to modify the BIG-IP version in AWS deployments. The template deployment service in AWS is called Cloud Formation Templates. AWS CFT BIG-IP Cloud Templates for AWS on GitHub There are a few methods I tested, and I’ll do a “How To” for each. Check the Appendix for additional examples. Use Latest Template Release (no edits required) Use Previous Template Release (no edits required) Edit Latest Template to Change BIG-IP Versions Edit Latest Template to Use Custom Uploaded Image Note: At the time of this article, the "Latest" template release version for F5 cloud templates in AWS is 5.5.0 and found under Tag 5.5.0 on GitHub. See Tag 5.5.0 Release Notes. Option #1: Use Latest Template Release (no edits required) This option lets you use templates without modification of code. Each release corresponds to a certain BIG-IP version (see AWS CFT Template Matrix), and the template is hard coded with the selection of one BIG-IP version in AWS F5 cloud templates. The latest template will deploy BIG-IP version 15.0.1.0 by default. You can change the BIG-IP version by supplying a different AWS AMI ID in the customImageId parameter. Here is an example to deploy BIG-IP version 14.1.2.3. Note: This method does not require template edits if using BIG-IP version 14.x and 15.x. If you are deploying BIG-IP version 12.x or 13.x, there are a few template edits required due to differences in "ifconfig" output during onboarding. If you need to deploy v12.x or v13.x with the latest template, see Option #3. Search for AMI via AWS CLI: Open your favorite terminal Enter a search filter. Case does matter in AWS CLI. command = aws ec2 describe-images --region xxxx --filters xxxx --query My example = BIGIP*14.1.2.3*PAYG*Best If you can't find what you need then reduce search criteria Copy the AMI ID and save for later (my example ami-045afb5916dcb65fe) #Example image search and results aws ec2 describe-images \ --region us-east-1 \ --filters "Name=name,Values=*BIGIP*14.1.2.3*PAYG*Best*" \ --query 'Images[*].[ImageId,Name]' #Output similar to this... [ "ami-045afb5916dcb65fe", "F5 BIGIP-14.1.2.3-0.0.5 PAYG-Best 1Gbps-191218141117-929ca0d8-c2d7-4068-8f9a-eb75a677afed-ami-0eb0d2f6602e3d520.4" ], Deploy BIG-IP with latest template release: Find your favorite BIG-IP template for AWS. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 5.5.0) Review the entire README for installation instructions Download template file Edit "Parameters" section of template file customImageId = ami-045afb5916dcb65fe Populate all remaining parameters Save file and deploy with your favorite method AWS will validate the template and launch a BIG-IP running 14.1.2.3 #Example deploying using AWS CLI #upload template file to s3 bucket aws s3 cp bigip.template s3://myBucket123 #create CFT stack aws cloudformation create-stack --stack-name myDeployment \ --template-url https://myBucket123.s3-us-west-1.amazonaws.com/bigip.template \ --capabilities CAPABILITY_IAM \ --parameters ParameterKey=customImageId,ParameterValue=ami-045afb5916dcb65fe Easy right? Try another AMI ID search and launch the template again to get a v14.x or v15.x BIG-IP. Option #2: Use Previous Template Release (no edits required) If you don’t mind a previous template release (less fixes/features), AND you still don’t want to tweak template code, AND you still need a different BIG-IP version, AND the BIG-IP version is listed in the matrix then keep reading! Here is an example to deploy BIG-IP version 13.1.1.0. Find a previous template release to deploy BIG-IP version you desire: Decide what BIG-IP version you need (my example 13.1.1.0) Check the AWS CFT Template Matrix for BIG-IP Scroll down the list and you’ll see template release v4.1.4 It allows “13.1.1” Click the link to review v4.1.4 template release notes Deploy BIG-IP with previous template release: Find your favorite BIG-IP template for AWS. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 4.1.4) Review the entire README for installation instructions Download template file Edit "Parameters" section of template file customImageId = OPTIONAL (leave as OPTIONAL) Populate all remaining parameters Save file and deploy with your favorite method AWS will validate the template and launch a BIG-IP running 13.1.1.0 #Example deploying using AWS CLI #upload template file to s3 bucket aws s3 cp bigip.template s3://myBucket123 #create CFT stack aws cloudformation create-stack --stack-name myDeployment \ --template-url https://myBucket123.s3-us-west-1.amazonaws.com/bigip.template \ --capabilities CAPABILITY_IAM \ --parameters ParameterKey=customImageId,ParameterValue=OPTIONAL OK...we made it this far, but you still don’t see the BIG-IP version you need. Keep reading! In the next section, we’ll tweak some templates! Option #3: Edit Latest Template to Change BIG-IP Versions So far, I have addressed using the templates as-is to deploy BIG-IP various versions. The BIG-IP version numbers are hard coded in the template but may not be the exact version you require. This third option allows us to get our hands dirty and modify the JSON code. Super easy edits! We’ll use the latest template version, make some minor edits to the code, and deploy the BIG-IP version we need. First, we need to make sure the version number is available in marketplace. Here is an example to deploy BIG-IP version 13.1.3.2. Note: This method is for deploying BIG-IP version 12.x and 13.x. The template edits are required due to differences in "ifconfig" output during onboarding. If you are using the latest template to deploy BIG-IP version 14.x or 15.x, see Option #1. Note: Review the knowledge article F5 support for GitHub software for any questions pertaining to support of templates and modified templates. Search for AMI via AWS CLI: Open your favorite terminal Enter a search filter. Case does matter in AWS CLI. command = aws ec2 describe-images --region xxxx --filters xxxx --query My example = BIGIP*13.1.3.2*PAYG*Best If you can't find what you need then reduce search criteria Copy the AMI ID and save for later (my example ami-0f59b659e616e6485) #Example image search and results aws ec2 describe-images \ --region us-east-1 \ --filters "Name=name,Values=*BIGIP*13.1.3.2*PAYG*Best*" \ --query 'Images[*].[ImageId,Name]' #Output similar to this... [ "ami-0f59b659e616e6485", "F5 Networks BIGIP-13.1.3.2-0.0.4 PAYG - Best 1Gbps - 20191105210000-929ca0d8-c2d7-4068-8f9a-eb75a677afed-ami-04f62a2c3a7df25b9.4" ] Deploy BIG-IP with edited latest template release: Find your favorite BIG-IP template for AWS. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 5.5.0) Review the entire README for installation instructions Download template file and edit code **Refer to EXAMPLE EDITS code snippet below Modify the network-config section Modify getNameServer.sh section Modify UserData section Fix AS3 sections if deploying BIG-IP v12.x Edit "Parameters" section of template file customImageId = ami-0f59b659e616e6485 Populate all remaining parameters Save file and deploy with your favorite method AWS will validate the template and launch a BIG-IP running 13.1.3.2 #Example deploying using AWS CLI #upload template file to s3 bucket aws s3 cp bigip.template s3://myBucket123 #create CFT stack aws cloudformation create-stack --stack-name myDeployment \ --template-url https://myBucket123.s3-us-west-1.amazonaws.com/bigip.template \ --capabilities CAPABILITY_IAM \ --parameters ParameterKey=customImageId,ParameterValue=ami-0f59b659e616e6485 #Example Edits for Option #3: Edit Latest Template to Change BIG-IP Versions #BIG-IP v12.x and v13.x only ######################## ## 040-network-config ## ######################## #original "GATEWAY_MAC=`ifconfig eth1 | egrep ether | awk '{print tolower($2)}'`; ", "GATEWAY_MAC2=`ifconfig eth2 | egrep ether | awk '{print tolower($2)}'`\n", #after edits "GATEWAY_MAC=`ifconfig eth1 | egrep HWaddr | awk '{print tolower($5)}'`; ", "GATEWAY_MAC2=`ifconfig eth2 | egrep HWaddr | awk '{print tolower($5)}'`\n", ###################### ## getNameServer.sh ## ###################### #original "INTERFACE_MAC=`ifconfig ${INTERFACE} | egrep ether | awk '{print tolower($2)}'`", #after edits "INTERFACE_MAC=`ifconfig ${INTERFACE} | egrep HWaddr | awk '{print tolower($5)}'`", ############## ## UserData ## ############## #original "/opt/aws/apitools/cfn-init/bin/cfn-init -v -s ", #after edits "/opt/aws/apitools/cfn-init-1.4-0.amzn1/bin/cfn-init -v -s ", ##################################### ## 050-onboard-BIG-IP ## ## Note: AS3 install fix for v12.x ## ##################################### #original "nohup /config/waitThenRun.sh", "f5-rest-node /config/cloud/aws/node_modules/@f5devcentral/f5-cloud-libs/scripts/onboard.js", "--install-ilx-package file:///config/cloud/f5-appsvcs-3.18.0-4.noarch.rpm", #after edits - Note: there are 2 references, update both places "mkdir -p /var/config/rest/downloads/;", "cp /config/cloud/f5-appsvcs-3.18.0-4.noarch.rpm /var/config/rest/downloads/;", "nohup /config/waitThenRun.sh", "f5-rest-node /config/cloud/aws/node_modules/@f5devcentral/f5-cloud-libs/scripts/onboard.js", "--install-ilx-package file:///var/config/rest/downloads/f5-appsvcs-3.18.0-4.noarch.rpm", Note: BIG-IP v12.x requires AS3 to be in /var/config/rest/downloads. Reference GitHub issues #103 for more info. Option #4: Edit Latest Template to Use Custom Uploaded Image The final AWS option allows you to upload or create your own BIG-IP images and reference those images in F5 cloud template deployments. There is an existing how-to doc on F5 Downloads explaining how to create an AWS AMI ID for your AWS environment. I’ll walk through the high-level steps of the article below. Then we'll review the deploy steps which require another JSON code edit. Note: Custom images only allow BYOL licensing. Note: Review the knowledge article F5 support for GitHub software for any questions pertaining to support of templates and modified templates Upload/Create Custom Image: Obtain an image file for the BIG-IP version you desire My example = 12.1.5 Download image file from https://downloads.f5.com and upload as-is Or...you can use F5 Image Generator too to make your own custom image Download tar file and instructions Review "Creating_AWS_Image.pdf" instructions to upload and create AWS AMI ID Create Linux instance, copy tar file to default volume Create new volume, attach to Linux instance, untar image to new volume Shutdown instance, detach volume, create new Linux instance, attach volume to new instance Create AWS AMI from new instance Search for AMI IDs "Owned by me" in EC2 (my example ami-0f3c7d6ba497b070f) Deploy custom BIG-IP image with latest template release: Find your favorite BIG-IP template for AWS. I’ll use the BIG-IP, standalone, 3nic, BYOL licensing (Tag 5.5.0) Review the entire README for installation instructions Download template file and edit code **Refer to EXAMPLE EDITS code snippet in Option #3 Modify the network-config section Modify getNameServer.sh section Modify UserData section Fix AS3 sections if deploying BIG-IP v12.x Edit "Parameters" section of template file customImageId = ami-0f3c7d6ba497b070f Populate all remaining parameters Save file and deploy with your favorite method AWS will validate the template and launch a BIG-IP running 12.1.5.0 #Example deploying using AWS CLI #upload template file to s3 bucket aws s3 cp bigip.template s3://myBucket123 #create CFT stack aws cloudformation create-stack --stack-name myDeployment \ --template-url https://myBucket123.s3-us-west-1.amazonaws.com/bigip.template \ --capabilities CAPABILITY_IAM \ --parameters ParameterKey=customImageId,ParameterValue=ami-0f3c7d6ba497b070f Summary That is a wrap! There’s lots of info in this post, and I hope it makes your job easier in deciding what template to choose when deploying various versions of BIG-IP devices in the AWS public cloud.773Views1like2CommentsUsing Cloud Templates to Change BIG-IP Versions - Google GCP
Introduction This article will make use of F5 cloud templates on GitHub to modify the BIG-IP versions for your public cloud deployments in Google. This is part of an article series, so please review the “Concepts” as well as other articles within the series. Modifying BIG-IP Templates for Google Cloud This section will show you how to modify the BIG-IP version in Google deployments. The template deployment service in Google is called Google Deployment Manager. Google GDM BIG-IP Cloud Templates for Google on GitHub There are a few methods I tested, and I’ll do a “How To” for each. Check the Appendix for additional examples. Use Latest Template Release (no edits required) Use Previous Template Release (no edits required) Edit Latest Template to Change BIG-IP Versions Edit Latest Template to Use Custom Uploaded Image Note: At the time of this article, the "Latest" template release version for F5 cloud templates in Google is 3.5.0 and found under Tag 3.5.0 on GitHub. See Tag 3.5.0 Release Notes. Option #1: Use Latest Template Release (no edits required) This option lets you use templates without modification of code. Each release corresponds to a certain BIG-IP version (see Google GDM Template Matrix), and the template is hard coded with the selection of one BIG-IP version in Google F5 cloud templates. The latest template will deploy BIG-IP version 15.0.1.0 by default. You can change the BIG-IP version by supplying a different Google image in the imageName parameter. Here is an example to deploy BIG-IP version 14.1.2.3. Search for Google images via gcloud CLI: Open your favorite terminal Enter a search filter. This filter will query the f5 vendor project. command = gcloud compute images list --project=f5-7626-networks-public | grep f5 Find your desired image My example = BIG-IP 14.1.2.3 PAYG BEST You can filter further with basic CLI by adding “grep 14-1-2-3" If you want BYOL, then “grep” for “byol” Copy the image ID and save for later (my example f5-bigip-14-1-2-3-0-0-5-payg-best-1gbps-191218142340) #Example image search and results gcloud compute images list --project=f5-7626-networks-public | grep f5 #Output similar to this... --snippet-- f5-bigip-13-1-3-2-0-0-4-payg-best-1gbps-20191105210022 f5-bigip-13-1-3-2-0-0-4-payg-best-200mbps-20191105210022 f5-bigip-13-1-3-2-0-0-4-byol-all-modules-2slot-20191105200157 ...and some more f5-bigip-14-1-2-3-0-0-5-byol-ltm-1boot-loc-191218142225 f5-bigip-14-1-2-3-0-0-5-payg-best-1gbps-191218142340 ...and more... Deploy BIG-IP with custom image ID: Find your favorite BIG-IP template for Google. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 3.5.0) Review the entire README for installation instructions Download template files: py, schema, yaml Edit yaml file imageName = f5-bigip-14-1-2-3-0-0-5-payg-best-1gbps-191218142340 Populate all remaining parameters Make sure all values in yaml are populated or commented (#) If values are commented, make sure schema contains defaults More details in my other article, Service Discovery in Google Gloud with BIG-IP Save file and deploy with your favorite method Google will validate the template and launch a BIG-IP running 14.1.2.3 #Example deploy using Google gcloud gcloud deployment-manager deployments create my-f5-14-1-2 --config f5-existing-stack-payg-3nic-bigip.yaml Easy right? Try another AMI ID search and launch the template again to get a v13.x, v14.x, or v15.x BIG-IP. Option #2: Use Previous Template Release (no edits required) If you don’t mind a previous template release (less fixes/features), AND you still don’t want to tweak template code, AND you still need a different BIG-IP version, AND the BIG-IP version is listed in the matrix then keep reading! Here is an example to deploy BIG-IP version 13.1.1.0. Find a previous template release to deploy BIG-IP version you desire: Decide what BIG-IP version you need (my example 13.1.1.0) Check the Google GDM Template Matrix for BIG-IP Scroll down the list and you’ll see template release v2.2.0 It allows “13.1.1” Click the link to review v2.2.0 template release notes Deploy BIG-IP with previous template release: Find your favorite BIG-IP template for Google. I’ll use the BIG-IP, standalone, 3nic, PAYG licensing (Tag 2.2.0) Review the entire README for installation instructions Download template files: py, schema, yaml Edit yaml file imageName = f5-hourly-bigip-13-1-1-0-0-4-best-1gbps (see yaml file for available images) Populate all remaining parameters Make sure all values in yaml are populated or commented (#) If values are commented, make sure schema contains defaults More details in my other article, Service Discovery in Google Gloud with BIG-IP Save file and deploy with your favorite method Google will validate the template and launch a BIG-IP running 13.1.1.0 #Example deploy using Google gcloud gcloud deployment-manager deployments create my-f5-13-1-1 --config f5-existing-stack-payg-3nic-bigip.yaml OK...we made it this far, but you still don’t see the BIG-IP version you need. Keep reading! In the next section, we’ll tweak some templates! Option #3: Edit Latest Template to Change BIG-IP Versions (TBD) This section is reserved for future use in situations where templates need to be modified in order to select a preferred BIG-IP version from public marketplace. In my testing, I have not yet found a scenario where a template edit is required. Therefore, this section is a place holder for potential future template hacks! Note: Review the knowledge article F5 support for GitHub software for any questions pertaining to support of templates and modified templates. Option #4: Edit Latest Template to Use Custom Uploaded Image The final Google option allows you to upload or create your own BIG-IP images and reference those images in F5 cloud template deployments. There is an existing how-to doc on the F5 Image Generator GitHub for GCE repository explaining how to create a BIG-IP image for your Google environment. I’ll walk through the high-level steps of the article below. Then we'll review the deploy steps. Note: Custom images only allow BYOL licensing. Note: Review the knowledge article F5 support for GitHub software for any questions pertaining to support of templates and modified templates Upload/Create Custom Image: Obtain an image file for the BIG-IP version you desire My example = 13.1.3.3 Download image file from https://downloads.f5.com Use F5 Image Generator to make your own custom image Review entire "Prerequisites" section Create a virtual disk image locally Upload the virtual disk image to a GCE bucket Create the virtual machine image Save image name for later (my example f5-bigip-13-1-3-3-0-0-6-byol-ltm-1slot-a83bji8j2) #Example image creation ./build-image -i BIGIP-13.1.3.3-0.0.6.iso -c config.yml -p gce -m ltm -b 1 #Output similar to this... ... qemu-system installing RTM Image -- start time: 01:58:44 qemu-system installing RTM Image -- elapsed time: 0:08:51 qemu-system performing selinux relabeling -- start time: 02:07:35 qemu-system performing selinux relabeling -- elapsed time: 0:02:10 ... ------======[ Finished disk generation for 'gce' 'ltm' '1' boot-locations. ]======------ Starting prepare cloud image 'f5-bigip-13-1-3-3-0-0-6-byol-ltm-1slot-a83bji8j2'. ... Finished prepare cloud image 'f5-bigip-13-1-3-3-0-0-6-byol-ltm-1slot-a83bji8j2' Deploy custom BIG-IP image with latest template release: Find your favorite BIG-IP template for Google. I’ll use the BIG-IP, standalone, 3nic, BYOL licensing (Tag 3.5.0) Review the entire README for installation instructions Download template files: py, schema, yaml Edit python file **Refer to EXAMPLE EDITS code snippet below Replace project ID in sourceImage with your project ID Edit yaml file imageName = f5-bigip-13-1-3-3-0-0-6-byol-ltm-1slot-a83bji8j2 Populate all remaining parameters Make sure all values in yaml are populated or commented (#) If values are commented, make sure schema contains defaults More details in my other article, Service Discovery in Google Gloud with BIG-IP Save file and deploy with your favorite method Google will validate the template and launch a BIG-IP running 13.1.3.3 #Example Edits for Option #4: Edit Latest Template to Use Custom Uploaded Image #original 'sourceImage': ''.join([COMPUTE_URL_BASE, 'projects/f5-7626-networks-public', '/global/images/', context.properties['imageName'], ]) #after edits 'sourceImage': ''.join([COMPUTE_URL_BASE, 'projects/myproject123', '/global/images/', context.properties['imageName'], ]) #Example deploy using Google gcloud gcloud deployment-manager deployments create my-f5-13-1-3 --config f5-existing-stack-byol-3nic-bigip.yaml Summary That is a wrap! There’s lots of info in this post, and I hope it makes your job easier in deciding what template to choose when deploying various versions of BIG-IP devices in the Google public cloud.887Views1like1Comment