F5 Plugins for OpenStack Heat¶
version 10.0.0¶
The F5 Plugins for OpenStack Heat are a set of OpenStack Heat Resource Plugins. These resource plugins extend the Heat orchestration service for use with F5 BIG-IP devices.
Installation¶
Tasks
- Install
pip
(required to install the heat-plugins package). - Create the Heat plugins directory –
/usr/lib/heat
. (This may already exist.) - Create a link to the F5 Heat plugins in the OpenStack Heat plugins directory
- Restart the Heat engine service.
Hint
You may need to use sudo to install the F5 Heat plugins and/or modify directories.
CentOS¶
yum install python-pip
pip install f5-openstack-heat-plugins
mkdir -p /usr/lib/heat
ln -s /usr/lib/python2.7/site-packages/f5_heat /usr/lib/heat/f5_heat
systemctl restart openstack-heat-engine.service
Ubuntu¶
apt-get install python-pip
pip install f5-openstack-heat-plugins
mkdir -p /usr/lib/heat
sudo ln -s /usr/local/lib/python2.7/dist-packages/f5_heat /usr/lib/heat
sudo service heat-engine restart
Usage¶
The F5 plugins for OpenStack Heat define objects used to orchestrate F5 services in Heat templates. The sample Heat template below does the following:
- Identifies the BIG-IP device you want to configure.
- Provides login credentials for an admin user on the BIG-IP device.
- Identifies the BIG-IP partition where you want to create the objects.
- identifies an iApp template you want to use to deploy/manage BIG-IP services (the template must already exist on the BIG-IP device).
Required resources¶
F5BigIPDevice
– identifies and authenticates to the BIG-IP device.F5SysPartition
– identifies the BIG-IP partition in which you want to create objects (/Common
is the default partition).
Example¶
Call the get_resource()
function to link the required resources with the objects you want to configure (iAppTemplate, iAppService).
Sample Heat template using objects defined by the F5 Heat plugins.
Tip
- You can pass in any properties as parameters.
- You can pass in secure information, like your BIG-IP login credentials, as a hidden field.
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: 1.2.3.4 # BIG-IP management IP address
username: admin
password: admin
partition:
type: F5::Sys::Partition
properties:
name: Common # Put these objects in the /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 resource
full_template:
get_file: iapps/http_template.tmpl
iapp_service:
type: F5::Sys::iAppService
properties:
name: test_service
bigip_server: { get_resource: bigip }
partition: { get_resource: partition }
template_name: http # Must match an iapp_template name on the BIG-IP device
|