OpenStack is an Infrastructure as a Service (IaaS) cloud computing project by Rackspace Cloud and NASA. It is free, open-source software released under the terms of the Apache License. The mission of the OpenStack project is to enable any organization to create and offer cloud computing services running on standard hardware. The community’s first official release, code-named Austin, was made available just four months later with plans to release regular updates of the software every few months. OpenStack integrates code from NASA’s Nebula platform as well as Rackspace’s Cloud Files platform.
The OpenStack plugin allows you to build a cloud by launching images and assigning metadata to instances, providing a more generic interface for managing resources. It interacts with OpenStack through the Compute API and Image API using PERL to perform the following tasks:
-
Create configurations with the connection information.
-
Perform actions on machines.
-
Deploy and delete servers.
-
Create and delete key pairs.
-
Create and delete floating IPs.
-
Create CloudBees CD/RO resources.
-
Create, attach, detach, extend, and delete volumes.
-
Create new images.
-
Create a snapshot of a server.
-
Perform hard and soft reboots of a server.
-
Deploy, update, and delete HEAT orchestration templates.
The OpenStack plugin provides two primary actions: Deploy and Cleanup, which work as a pair within a job.
Prerequisites
This plugin uses an updated version of Perl, cb-perl shell (Perl v5.32), and requires CloudBees CD/RO agents version 10.3+ to work.
Plugin Version 1.3.7.2022041801 Revised on April 14, 2022
Supported versions
This plugin was developed and tested against OpenStack IceHouse.
The minimum CloudBees CD/RO supported version is ElectricCommander 3.6.
Create OpenStack plugin configurations
Plugin configurations are sets of parameters that can be applied across some, or all, plugin procedures. They can reduce the repetition of common values, create predefined parameter sets, and securely store credentials. Each configuration is given a unique name that is entered in the designated parameter for the plugin procedures that use them. The following steps illustrate how to create a plugin configuration that can be used by one or more plugin procedures.
The Identity Service URL must have http or https , followed by your server hostname or IP address.
|
To create a plugin configuration:
-
Navigate to
. -
Select Add plugin configuration to create a new configuration.
-
In the New Configuration window, specify a Name for the configuration.
-
Select the Project that the configuration belongs to.
-
Optionally, add a Description for the configuration.
-
Select the appropriate Plugin for the configuration.
-
Configure the plugin configuration parameters.
-
Select OK.
Depending on your plugin configuration and how you run procedures, the Differences in plugin UI behavior. field may behave differently in the CloudBees CD/RO UI. For more information, refer to |
Create OpenStack plugin procedures
Plugin procedures can be used in procedure steps, process steps, and pipeline tasks, allowing you to orchestrate third-party tools at the appropriate time in your component, application process, or pipeline.
Depending on your plugin configuration and how you run procedures, the Differences in plugin UI behavior. field may behave differently in the CloudBees CD/RO UI. For more information, refer to |
AllocateIP
Creates a new OpenStack floating IP address to use with your OpenStack account.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
AllocateIP input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Results Location |
The location in the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from the other deployments stored in the same location. The default is |
AttachVolume
Attaches volumes that are created with the volume API to server instances. You can attach a volume to one instance.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
AttachVolume input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Server ID |
Required. ID of the server to which the volume is attached. |
Volume ID |
Required. ID of the volume to attach. |
Name of device |
Name of the device, such as |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
Cleanup
Deletes an existing OpenStack server instance that was created using the Deploy procedure.
Cleanup input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Server ID(s) |
Required. Comma-separated list of IDs of servers to delete. |
Resource name(s) |
Comma-separated list of names of the resources to delete. |
CloudManagerGrow
Allows the plugin to integrate with the CloudManager plugin. It calls the Deploy procedure and is run by CloudManager.
CloudManagerGrow input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Tenant ID |
Required. The ID of the tenant to use. |
Number of Servers |
Required. The number of servers to deploy. If there are more than one, a suffix ( |
Server name |
Required. Name of the new server. |
Image ID |
Required. The ID of an existing image in OpenStack. |
Flavor ID |
Required. The ID for the flavor to use. |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
Resource Pool(s) |
Required. Space-separated list of names of resource pools in CloudBees CD/RO that are associated with the machines in this configuration, if the resources are created. |
Resource workspace |
The CloudBees CD/RO workspace that the resource uses. |
CloudManagerShrink
Allows the plugin to integrate with the CloudManager plugin. It calls the Cleanup procedure and is run by CloudManager.
CloudManagerShrink input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
List of Deployments |
Required. A list of deployments that were previously created by the CloudManagerGrow procedure to stop. |
CloudManagerSync
Allows the plugin to integrate with CloudManager plugin. It verifies that the instances it has recorded as alive are still alive. It is run by CloudManager.
CloudManagerSync input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
List of Deployments |
Required. A list of deployments that were previously created by the CloudManagerGrow procedure to verify. |
CreateImage
Creates a virtual machine (VM) image. You can launch new instances from these images.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
CreateImage input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Image name |
Required. Display name of the new image. |
Disk format |
Required. The disk format of a VM image. Valid values are |
Container format |
Required. The container format for the new image. Valid values are |
Is image location a local file ? |
Required. If selected, the source image file is on the local machine. |
Image path |
Required. Path to the image on the local machine or a valid and direct URL to the image location. |
Size |
Size of the raw image file from which the new image is generated. |
Checksum |
The checksum of the raw image file. |
Min-Ram |
The minimum RAM in megabytes (MBs) required to run this image on a server. |
Min-Disk |
The minimum disk space in gigabytes (GBs) required to run this image on a server. |
Owner |
The ID of the owner (tenant) of the image. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
CreateInstanceSnapshot
Creates a snapshot from the instance. You can launch an instance from a snapshot.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
CreateInstanceSnapshot input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Instance snapshot name |
Required. The display name of the snapshot. |
Server ID |
Required. The ID of the server instance for which a snapshot is created. |
Metadata |
Metadata for the snapshot in the following format: |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
CreateKeyPair
Creates a new OpenStack key pair. The public key is stored by OpenStack and the private key is returned to you. If a key with the specified name already exists, OpenStack returns an error.
The plugin stores properties on the CloudBees CD/RO server in the location specified in the Results Location and the Results tag fields. If the Results Location field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
CreateKeyPair input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Key name |
Required. A unique name for the key pair. The default is |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
CreateStack
HEAT is an OpenStack service to orchestrate multiple composite cloud applications using templates. The CreateStack procedure creates a new HEAT stack from a specified HEAT template. You can specify the template (in JSON or YAML format) in the Template parameter field or the URL of the template.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
CreateStack input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Stack Name |
Required. The display name for the new stack. |
Template |
The stack template to instantiate a HEAT stack in JSON or YAML format. |
Template URL |
A URI to the location containing the updated stack template to instantiate. You specify this parameter only if you are not entering the template in the Template parameter. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
CreateVolume
Creates a new OpenStack volume. A volume is a detachable block storage device. You can attach a volume to one instance at a time.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
CreateVolume input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Volume name |
Required. The name for the new volume that appears in the UI. |
Size (in gigabytes [GBs]) |
Required. Size of the volume in gigabytes. |
Type of volume |
Required. The volume type. |
Availability zone |
The availability zone where the new zone is created. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from the other deployments stored in the same location. The default is |
CreateVolumeSnapshot
Creates a snapshot of a volume, a point-in-time complete copy of the volume. You can create a volume from this snapshot.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
CreateVolumeSnapshot input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Name of volume snapshot |
Required. The display name of the snapshot. |
Description |
The description of the snapshot. |
Create a snapshot forcefully? |
If selected, a snapshot of a volume is forcefully created even if it is attached to an instance. |
Volume ID |
Required. The ID of the volume from which to create a snapshot. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
DeleteKeyPair
Deletes an existing OpenStack key pair. The public key is removed from OpenStack. You must own the key pair.
DeleteStack
Deletes an existing stack.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
DeleteStack input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Stack Name |
Required. The display name of the stack to delete. |
Stack ID |
Required. The ID of the stack to delete. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
DeleteVolume
Deletes a volume. A volume is a detachable block storage device.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
Deploy
Calls the CreateKeyPair procedure and deploys one or more new instances.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
Deploy input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Key Pair Name |
Required. Name of an existing key pair. |
Number of Servers |
Required. Number of servers to deploy. If there are more than one, a suffix ( |
Server name |
Required. Name of the new server. |
Image ID |
Required. ID of an existing image in OpenStack. |
Flavor ID |
Required. ID of the flavor to use. |
Security Group(s) |
Newline-delimited list of security groups. |
Availability Zone |
The availability zone in which to launch the server. |
Customization Script |
Configuration information or scripts to execute when the server is launched. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to keep it separate from the other deployments stored in the same location. The default is |
Create Resource? |
If selected, resources are created for deployed servers. |
Associate IP? |
If selected,the IP address is associated with the deployed instance. |
Resource Pool |
Name of the resource pool in CloudBees CD/RO that is associated with the machines in this configuration when resources are created. |
Resource Port |
Port is used when creating a resource. |
Resource workspace |
CloudBees CD/RO workspace that the resources uses. |
Resource Zone Name |
CloudBees CD/RO zone name for a resource. Used when creating a resource. |
DetachVolume
This procedure detaches a volume from a server. A volume is a detachable block storage device.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
DetachVolume input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Server ID |
Required. ID of the server from which the volume is detached. |
Volume ID |
Required. ID of the volume to detach. |
Attachment ID |
Required. ID of the volume attachment. |
ExtendVolume
Extends the size of the specified volume. The volume must be in available state before the size is extended.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
You must verify that the ExtendVolume procedure is supported by the OpenStack services before using this procedure. |
ExtendVolume input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Volume ID |
Required. ID of the volume to extend. |
New size |
Required. New size of the volume. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
RebootInstance
Reboots a server instance.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
RebootInstance input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Server ID |
Required. ID of the server to reboot. |
Reboot Type |
Required. Type of the reboot action ( |
UpdateStack
Updates an existing stack. You can enter the updated template (in JSON or YAML format) in the Template field or the URL of the template.
The plugin stores properties on the CloudBees CD/RO server in the locations specified in the Results Location and Results tag parameter fields. If the Results Location parameter field is empty, the default location in the job directory is /myJob/Openstack/deployed/<provision-tag> .
|
UpdateStack input parameters
Parameter | Description |
---|---|
Configuration |
Required. The name of a valid existing configuration with the connection information. |
Stack Name |
Required. The display name of the stack to update. |
Stack ID |
Required. The ID of the stack to update. |
Template |
The template (in JSON or YAML format) with which to update the stack. |
Template URL |
A URI to the location containing the updated stack template to instantiate. You specify this parameter only if you are not entering the template in the Template field. |
Results Location |
The location on the CloudBees CD/RO server where the properties are stored. The default is |
Results tag |
Required. The unique tag for this provision to separate it from other deployments stored in the same location. The default is |
OpenStack plugin use cases
The most common use for the OpenStack plugin is to create a server, create CloudBees CD/RO resources assigned to it, use the resources to run some operations, and then delete the resource and the server.
To accomplish these tasks you must:
-
Use the Deploy procedure to deploy an OpenStack server.
-
Create and use resources for this deployment. For example, create a new Command procedure step to use a resource that you created by adding a resource from a resource pool using the ec-perl sleep command for 30 seconds.
-
Delete the resources.
-
Use the Cleanup procedure to delete the deployed OpenStack server instance that you created with the Deploy procedure.
-
After the job runs, view the results in CloudBees CD/RO.
Figure 1. Deploy outputFigure 2. Cleanup output
OpenStack plugin notes
1.3.4
-
Added Rackspace support for dynamic environments.
-
Configured the plugin to allow the CloudBees CD/RO UI to create configurations inline of a procedure form.
-
Configured the plugin to allow the CloudBees CD/RO UI to render the plugin procedure parameters entirely using the configured form XMLs.
-
Enabled the plugin for managing the plugin configurations inline when defining an application process step or a pipeline stage task.
1.3.2
-
Added a Resource Port field to the dynamic environments.
-
Added support for the Resource Port parameter to the Deploy procedure
1.3.1
-
Fixed an issue with configurations being cached for Internet Explorer®.
-
Added validation to the CreateConfiguration procedure for dynamic environments.
-
Added the Tenant ID parameter to the OpenStack plugin configuration.
-
Removed the Tenant ID parameter from all procedures except CreateConfiguration.
-
Added the ability to dynamically retrieve drop-down options such as image or flavor when creating resource templates for dynamic environments.
-
Added the ability to create a resource in a non-default zone.
1.2.1
-
Fixed an issue that occurs when a resource was not created after provisioning it and the "Duplicate resource name" error message appears.
-
The Workspace parameter was removed from procedure to create an OpenStack configuration.
1.2.0
-
Added support for the following procedures:
-
CreateVolume to create a new volume.
-
ExtendVolume to extend the size of a volume.
-
AttachVolume to attach the volume to a server instance.
-
DetachVolume to detach the volume from a server instance.
-
DeleteVolume to delete a volume from OpenStack block storage.
-
CreateImage to create a virtual machine (VM) image on OpenStack Image Service Glance.
-
CreateInstanceSnapshot to create a snapshot of a server instance.
-
CreateVolumeSnapshot to create a snapshot of a volume.
-
CreateStack to create a HEAT stack from a HEAT template.
-
UpdateStack to update an existing HEAT stack with a template.
-
DeleteStack to delete an existing HEAT stack.
-
-
The Deploy procedure was updated to add support for customization scripts, availability zones, security groups, and deployments using an instance snapshot.
1.1.2
-
Added properties in the
ec_cloudprovisioning_plugin
property sheet for CloudBees CD/RO deploy.
1.1.1
-
Added support for Keystone v3 authorization.
-
Decoupled key pairs in creation and deletion operations from the Deploy and Cleanup procedures.
-
Added the AssociateFloatingIP procedure to associate floating IP addresses to existing VMs.
-
Fixed the Create Resource? parameter in the Deploy procedure.
1.0.0
-
Added support configuration management procedures.
-
Added support for the AllocateIP, Cleanup, CreateKeyPair, DeleteKeyPair, Deploy, and ReleaseIP procedures.
-
Implemented CloudManager support.
-
Implemented the XML parameter panel.
-
Added a documentation link to each procedure.
-
Added the documentation page.
-
Added use cases.