How to Deploy a BIG-IP VE instance and set up a basic load balancer

This guide demonstrates how to use the OpenStack Heat orchestration service to onboard, deploy, and provision a F5 BIG-IP Virtual Edition (VE) instance. We provide instructions for deploying the Heat templates via the OpenStack Horizon dashboard.

This guide uses the following F5 Heat templates:

Before You Begin

In addition to the basic F5 Heat prerequisites, you will need the following to follow this guide:

  • An external network set up in Neutron that can access the internet.
  • F5 Heat Plugins for OpenStack installed on the Neutron controller.
  • SSH key(s) set up in OpenStack.
  • (Optional) Add the F5 flavors to OpenStack.

Caveats

  • The Heat engine needs to access the BIG-IP VE image file via “http”. The F5 Heat templates cannot retrieve files via “https” and do not support file uploads.

Add the BIG-IP VE image to Glance

Add a Ubuntu image

The BIG-IP image patch and upload template uses a Ubuntu server to run a patch script on the BIG-IP VE qcow image. If you don’t already have a Ubuntu image in Glance, you’ll need to add one.

  1. Copy the download URL for a Ubuntu 14.04 server image. [1]
  2. Add the image to Glance:
    • In Horizon, go to Compute –> Images.
    • Click Create Image and paste the image URL in the Image Location field.
    • Enter the requested information, including the minimum requirements for your image (we used 7GB disk and 520MB RAM).
    • Click Create to add the image to Glance.
[1]Ubuntu 14.04 is the only version verified by the OpenStack development team. Other versions may work, but deployments using unverified versions are not supported by F5.

Patch and upload the BIG-IP VE image

  1. Download the BIG-IP VE image patch and upload heat template.

  2. Define the stack parameters in a YAML file.

    Tip

    The sample environment file below shows the values you’ll need to provide when deploying the BIG-IP VE image patch and upload heat stack.

    Before you deploy your stack, replace the example values with the correct information for your environment.

    parameters:
      onboard_image: ubuntu-14.04.5-server-amd64.iso
      # provide the name of a private network in your OpenStack cloud
      private_network: mgmt_net
      # provide your Keystone authentication URL
      f5_image_import_auth_url: http://1.2.3.4:5000/v2.0
      # provide the name of the OpenStack tenant (project) you want to import the
      # image to
      f5_image_import_tenant: admin
      # provide your OpenStack user name
      f5_image_import_user: admin
      # provide your OpenStack password
      # (TIP: use an environment variable)
      # This value is set to be hidden
      f5_image_import_password: $MY_PASSWORD
      # DO NOT CHANGE THIS ENTRY
      # This F5 Networks GitHub repo contains the image patch script
      image_prep_url: https://github.com/F5Networks/f5-openstack-image-prep.git
      # Provide the URL for your BIG-IP qcow.zip image
      # Must be accessible via http
      f5_ve_image_url: http://path/to/my/big-ip-ve-image
      f5_ve_image_name: BIGIP-12.1.2.0.0.249.LTM.qcow2.zip
      # Provide the name of an SSH key configured in OpenStack
      # This key will be used to authenticate to the Ubuntu server
      image_prep_key: my-openstack-ssh-key
    

    Sample image patch and upload env file

  3. Deploy the Heat stack using the OpenStack CLI.

    openstack stack create -f patch_upload_ve_image.yaml -e patch-upload-ve-image.params.yaml
    

Deploy a BIG-IP VE instance

  1. Download the BIG-IP VE Standalone, 3-nic heat template.

  2. Define the stack parameters in a YAML file.

    Tip

    The sample environment file below shows the values you’ll need to provide when deploying the BIG-IP VE standalone, 3-nic heat stack.

    Before you deploy your stack, replace the example values with the correct information for your environment.

    parameters:
      ve_image: BIGIP-12.1.2.0.0.249.LTM.qcow2
      # Default is m1.medium
      # F5 flavor to use with BIG-IP VE LTM image is "f5-ltm"
      ve_flavor: m1.medium
      # Provide the name of an SSH key configured in OpenStack
      # This key will be used to authenticate to the BIG-IP VE instance
      f5_ve_os_ssh_key: my-openstack-ssh-key
      # Create a password for the BIG-IP admin user account
      # (TIP: use an environment variable)
      # This value is set to be hidden
      admin_password: $ADMIN_PASSWORD
      # Create a password for the BIG-IP root user account
      # (TIP: use an environment variable)
      # This value is set to be hidden
      root_password: $ROOT_PASSWORD
      # Enter your BIG-IP license key
      license: <license_string>
      # Provide the name of the Neutron network that has access to the internet
      external_network: neutron.ext.network
      # Provide the name of a Neutron network to assign to the BIG-IP mgmt interface
      mgmt_network: test
      # Provide the name of an existing Neutron network to connect to the BIG-IP 1.1
      # interface
      network_1: tmm_network
      # Assign a name to the 1.1 network on the BIG-IP instance
      network_1_name: network-1.1
      # Provide the name of an existing Neutron network to connect to the BIG-IP 1.2
      # interface
      network_2: tmm_network
      # Assign a name to the 1.2 network on the BIG-IP instance
      network_2_name: network-1.2
      # Provide the default gateway IP or hostname; defaults to 'none'
      default_gateway: none
    

    Sample BIG-IP VE standalone 3-nic env file

  3. Deploy the Heat stack using the OpenStack CLI.

    openstack stack create -f f5_ve_standalone_3_nic.yaml -e f5_ve_standalone_3_nic.params.yaml
    

Assign a Floating IP Address to the BIG-IP instance

Use the OpenStack Horizon dashboard to assign a floating IP address to the BIG-IP VE instance.

  1. Go to Project ‣ Compute ‣ Instances, then choose Associate Floating IP from the drop-down menu in the Actions column.

  2. Select a Floating IP from the IP Address drop-down menu.

  3. In the port drop-down, select a port for your BIG-IP instance that corresponds to the external VLAN.

  4. Click Associate.

    Tip

    If there aren’t any floating IP addresses available in the drop-down menu:

    • Click + to generate a floating IP address.
    • Click Allocate.

    The availability of these actions may depend on your OpenStack user privileges.

Create a basic load balancer on the BIG-IP VE instance

  1. Download the Deploy basic load balancer heat template.

  2. Define the stack parameters in a YAML file.

    Tip

    The sample environment file below shows the values you’ll need to provide when deploying the Basic Load Balancer heat stack. Before you deploy your stack, replace the example values with the correct information for your environment.

    parameters:
      client_server_image: <image-name>
      client_server_flavor: <nova-flavor>
      key_name: <ssh-hey-name>
      client_server_sec_group: open
      client_network: <client_vlan>
      server_network: <server_vlan>
      bigip_un: $BIGIP_USER
      bigip_pw: $BIGIP_PASS
      vs_name: virtual_server1
      pool_name: pool1
      bigip_fip:
      vs_vip:
      vs_port: 443
      pool_member_port: 8080
    

    Sample Deploy Basic Load Balancer env file

  3. Deploy the Heat stack using the OpenStack CLI.

    
    

    openstack stack create -f deploy_lb.yaml -e deploy_lb.params.yaml

Next Steps

  1. Configure your BIG-IP device.

    Tip

    • You can access the BIG-IP from the OpenStack dashboard via System ‣ Instances ‣ Console.
    • To log in to the BIG-IP configuration utility, copy its floating IP address from the Instance screen in the dashboard, then paste it into your browser’s address bar. You must use https to access the BIG-IP configuration utility.
    • You can connect to the BIG-IP instance via ssh using the floating IP address and the ssh key you provided in the environment file.
  2. Set up the F5 Integration for OpenStack Neutron LBaaS to communicate with your new BIG-IP instance.