This repository houses all of F5®’s Openstack Heat resource plugins. F5’s Heat plugins can be used to orchestrate BIG-IP® LTM® services in your OpenStack environment.
The current release, v 10.0.0, supports the OpenStack newton release.
Please see F5 OpenStack Releases, Versioning, and Support Matrix for additional information about F5’s OpenStack plugins, versioning, and BIG-IP compatibility.
Before you begin, please note the following:
The F5 Heat plugins must be installed on the same machine as the Heat engine service in your stack.
You may need to use sudo
to execute some of the installation and/or configuration commands.
You will need to install the Python tool pip
on your machine.
$ yum install python-pip \\ CentOS $ apt-get install python-pip \\ Ubuntu
If you are installing a pre-release version of the package with pip, you will need to use the --pre
option.
Note
Once the plugins are installed, you will need to tell the Heat engine service where to find them. We recommend that you either install the plugins, or link them, to a location where the Heat engine already expects to find them. The default location for Heat plugins is /usr/lib/heat
.
If you wish to install the plugins in a different location, update the
plugin_dirs
section of the Heat configuration file - /etc/heat/heat.conf
- accordingly.
Please remember that your installation may differ (sometimes greatly) from what we show below.
Install the F5 Heat plugins.
$ sudo pip install f5-openstack-heat-plugins
Make the Heat plugins directory (NOTE: this may already exist).
$ sudo mkdir -p /usr/lib/heat
Create a link to the F5 plugins in the Heat plugins directory.
$ sudo ln -s /usr/lib/python2.7/site-packages/f5_heat /usr/lib/heat/f5_heat
Restart the Heat engine service.
$ sudo systemctl restart openstack-heat-engine.service
Install the F5 Heat plugins.
$ sudo pip install f5-openstack-heat-plugins
Make the Heat plugins directory (NOTE: this may already exist).
$ sudo mkdir -p /usr/lib/heat
Create a link to the F5 plugins in the Heat plugins directory.
$ sudo ln -s /usr/local/lib/python2.7/dist-packages/f5_heat /usr/lib/heat
Restart the Heat engine service.
$ sudo service heat-engine restart
The objects defined by the F5 Heat plugins can be used in Heat templates to orchestrate F5 services in an OpenStack cloud. The sample Heat template below does the following:
The first two resources defined here are required to deploy any object on BIG-IP VE.
F5BigIPDevice
identifies and authenticates to the BIG-IPF5SysPartition
identifies the partition on the BIG-IP in which objects will be placed (Common
is the default partition).These two requirements will be linked with the obects we intend to configure (iAppTemplate, iAppService) by calling the ‘get_resource’ intrinsic function.
Sample Heat template using objects defined by the F5 Heat plugins.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | resources:
bigip:
type: F5::BigIP::Device
properties:
ip: 10.0.0.1 # All properties can be passed in as parameters
username: admin
password: admin # The password can be passed in as a hidden field
partition:
type: F5::Sys::Partition
properties:
name: Common # Put these objects in the existing Common partition
bigip_server: { get_resource: bigip } # Create dependency on bigip
iapp_template:
type: F5::Sys::iAppTemplate
properties:
name: test_template
bigip_server: { get_resource: bigip } # Depends on bigip resource
partition: { get_resource: partition} # Depends on partition as well
full_template:
get_file: iapps/full_template.tmpl
iapp_service:
type: F5::Sys::iAppService
properties:
name: test_service
bigip_server: { get_resource: bigip }
partition: { get_resource: partition }
template_name: test_template # Must match the name in iapp_template resource
|
Tip
See the F5 Heat templates repo on GitHub for additional examples, or peruse the documentation.
Warning
The API documentation is under development. Check back often to see what modules have been updated.