Skytap recently announced the availability of the Skytap Automation Pack for IBM UrbanCode Deploy. This plugin adds functionality into the IBM UrbanCode Deploy Application Process web UI to create and manipulate templates and configurations in Skytap Cloud. While the functionality is focused at enabling continuous delivery activities, the functionality is not solely limited to use in continuous delivery applications.
Specifically, the Skytap Automation Pack for IBM UrbanCode Deploy adds the following Skytap actions to IBM UrbanCode Deploy for the following IBM UrbanCode Deploy process definitions:
- Skytap Cloud Authentication
- Add Configuration to Project
- Add Template to Project
- Change Configuration State
- Connect to Network in another Configuration (ICNR)
- Connect to VPN Tunnel
- Create Configuration from Template
- Create Published Service
- Create Published URL
- Create Template from Configuration
- Delete Configuration
- Get VM ID
- List Published URL for Configuration
- List VM Published Service
- Merge Template into Configuration
- Set VM User Data
We will discuss some of these Skytap Cloud Actions below, but you can read more detailed information about all of the actions in the user documentation available on the Skytap website.
Accessing the Skytap Actions for IBM UrbanCode Deploy
The Skytap Cloud actions that are available for use in IBM UrbanCode Deploy are exposed in the “Cloud->Skytap Cloud” entry in the IBM UrbanCode Deploy “Available Plugin Steps” window in the IBM UrbanCode Deploy Component Process Editor:
Depending on which action you select, you will be presented with a set of input properties to specify in order to enable execution of the Skytap Action. The specific input and output parameters that are required differ depending on which Skytap Cloud Action you select.
Let’s examine a very simple process flow where we do the following:
1. Establish Skytap Cloud Authentication properties
2. Create a Skytap configurations from a pre-configured Skytap template
3. Run the Configuration
Constructing the IBM UrbanCode Deploy Component Process
For purposes of this exercise, we’ll assume an already-created application named “Deploy UCD Environment in Skytap” and an associated component named “Skytap UCD Deployment Component.” We will be creating a process in the “Skytap UCD Deployment Component” named “Deploy-Environment Process” as illustrated below:
Authentication with Skytap Cloud
To use the Skytap Automation Pack for IBM UrbanCode Deploy, you must first be able to authenticate with Skytap Cloud. This authentication requires a Skytap Cloud user ID and an API Security Token. Assuming you already have a Skytap Cloud User ID, you can retrieve your API Security Token in your Skytap Account Settings:
If you don’t have a Skytap Cloud account, you can sign up for one here: http://www.skytap.com/skytap-trial/
The first Skytap Cloud Action in our application process is “Skytap Cloud Authentication,” which will also likely be your first Skytap Cloud Action in your application process. This action allows you to specify the Skytap Cloud authentication information that will be used by subsequent Skytap Cloud Actions.
Below is a screenshot of the Skytap Cloud Authentication step dialog:
Note that the Username and Authentication Key properties are required.
Once we fill in the required properties and click the “Save” button, we can see the step in our application process:
Create the Skytap Configuration
Since we first want to create a Skytap configuration from a template, select “Create Configuration from Template” from the “Available Plugin Steps” window and drag it onto your application process diagram:
The dialog associated with the “Create Configuration from Template” Skytap Cloud Action will then be displayed and we can fill out the specific properties required for this Skytap action:
In this case, we will specify a Template ID of 331965, which corresponds to a template in the Skytap Public Template Library that contains a CentOS 6.4 x32 VM. Additionally, we have specified a name of “Skytap UCD Configuration” that will be assigned to the newly created configuration. If we didn’t specify a name, the name of the template, “CentOS 6.4 x32 Desktop,” would be assigned as the configuration name.
Also note that the Skytap Authentication properties that we specified in the first process step are being “inherited” by this step. If we wanted to override the authentication we could simply fill in the desired authentication property values in the corresponding property fields in this process step.
When we click the “Save” button we will see our process step in our application process:
Run the Skytap Configuration
Now that the Skytap Configuration has been created, we can run it by selecting “Change Configuration State” as the Skytap Cloud Action and dragging it onto our process diagram:
The dialog associated with the “Change Configuration State” Skytap Cloud Action will then be displayed and we can fill out the specific properties required for this Skytap action:
Because we just created the Skytap Configuration as part of this component process, we don’t know the configuration ID. The configuration ID of the created process, though, is an output property of the “Create Configuration from Template” Skytap Cloud Action, so we are able to use the “configID” output property from that Skytap Cloud Action as an input property to this process step to specify the Skytap Configuration that we just created.
We also set the desired configuration state to “Running”. Other possible values are “Suspended” and “Shutdown”.
This Skytap Cloud Action will inherit the Skytap Cloud Authentication properties entered earlier in the process definition.
If we now scroll down and click the “Save” button, we will see our new process step:
Complete and Run the IBM UrbanCode Deploy Process
We’ve now created the desired Skytap Cloud Actions so we can create the process arrow from the “Change Configuration State” step to “Finish” and click on the disk icon to save our process:
When the process definition has been saved, we will see a dialog:
Running our Process
Once the component process has been defined and saved, we can run the process by navigating to the IBM UrbanCode Deploy Application tap and click on the application that is associated with the component in which our process is defined:
Click on the “Request Process” button on the associated Environment:
Click the “Submit” button in the “Run Process…” dialog:
Once the process has started, we can review it’s progress by clicking the “Details” link associated with the process:
Here we see that each step in the process has executed successfully:
And we can review the Skytap Cloud Action log by clicking on the “Console” icon associated with the specific action that we want to review, in this case the “Change Configuration State” Skytap Action:
The “Output Log” for the “Change Configuration State” Skytap Action provides detailed and verbose logging of the action execution:
Verify the Configuration is Running
Now we can log into Skytap Cloud and use the Skytap Web GUI to verify that the proper execution of the IBM UrbanCode Deploy process by confirming that the desired configuration was indeed created and is running:
Here we see that a Skytap Configuration has been created and assigned a name of “Skytap UCD Configuration,” exactly as specified in our IBM UrbanCode Deploy Component process, and we can verify that the configuration is running, again exactly as specified.
Summary
We’ve used the Skytap Cloud Automation Pack for IBM UrbanCode Deploy to create a simple IBM UrbanCode Deploy Component Process that interacts with Skytap Cloud to establish authentication and create and run a Skytap Cloud Configuration. The principles demonstrated in this simple exercise and the additional Skytap actions provided by the Skytap Cloud Automation Pack for IBM UrbanCode Deploy can easily be expanded further into more complex scenarios based on your deployment requirements.
Please contact Skytap at 1-888-759-8278 or https://www.skytap.com if you want more information about Skytap or the Skytap Cloud Automation Pack for IBM UrbanCode Deploy.