Introduction
This document describes the integration between CloudCenter and ServiceNow (SNOW).
Contributed by Mitchell Cramer, TAC Engineer.
What does the CloudCenter and ServiceNow integration offer?
Integration between CloudCenter and ServiceNow allows applications to be modeled in CloudCenter and then published to ServiceNow where you are able to request deployments to any of the available clouds and see cost comparisons between the clouds. The latest version is v1.4 which supports the two environments Helsinki and Istanbul.
How does a user obtain the ServiceNow integration for CloudCenter?
In order to incorporate the ServiceNow Integration into CloudCenter you should follow these steps:
- Navigate to store.servicenow.com.
- Search for CloudCenter.
- Click on CloudCenter integration.
- Click on Contact Seller.
- Log in with your credentials.
- CloudCenter team approves the request for download and sends you the information via ServiceNow.
What changes are made on the CloudCenter side to make this integration work?
There is one custom action called Publish to ServiceNow and three policies called SNOW_job_status_changed, SNOW_job_deployed, and SNOW_job_canceled in CloudCenter. The custom action adds a button labeled Publish to ServiceNow in the applications dropdown.
What is the format for the custom action, Publish to ServiceNow?
The structure of the custom action is shown in this table:
Visible to User |
Enabled |
Object |
Application |
Action Type |
Invoke a web service |
Protocol |
HTTPS |
Web Service URL |
<yourServiceNowInstance.com>/api/now/table/x_cqt_cliqr_publish_app_trigger |
Username |
rest.admin |
Password |
rest.admin's password |
HTTP Request Type |
POST |
Content Type |
JSON |
Body |
{
"app_id" : "%appId%" ,
"app_name" : "%appName%" ,
"latest_app_version" : "%latestAppVersion%" ,
"owner_id" : "%ownerId%" ,
"owner" : "%owner%"
}
|
What is the format for the custom policies needed for the ServiceNow integration?
The format for the custom policies is shown in these tables, they follow a similar pattern with pieces of information changed for each policy.
Name |
SNOW_job_status_changed |
Execute For |
Application Deployment |
On Event |
Status Changed |
Action Type |
Invoke a web service
|
Protocol |
HTTPS |
Web Service URL |
<yourServiceNowInstance.com>/api/now/table/x_cqt_cliqr_job_status_trigger |
Username |
rest.admin |
Password |
rest.admin's password |
HTTP Request Type |
POST |
Content Type |
JSON |
Body |
{
"job_id" : "%jobId%" ,
"job_name" : "%jobName%" ,
"job_type" : "%jobType%" ,
"app_name" : "%appName%" ,
"owner" : "%owner%" ,
"status" : "%status%" ,
"changed_on" : "%ChangedOn%" ,
"new_status" : "%NewStatus%"
}
|
Auto Enabled for shared users |
Enabled
|
Restrict users from disablings this policy |
Enabled
|
Name |
SNOW_job_deployed |
Execute For |
Application Deployment |
On Event |
Deployed |
Action Type |
Invoke a web service
|
Protocol |
HTTPS |
Web Service URL |
<yourServiceNowInstance.com>/api/now/table/x_cqt_cliqr_job_status_trigger |
Username |
rest.admin |
Password |
rest.admin's password |
HTTP Request Type |
POST |
Content Type |
JSON |
Body |
{
"job_id" : "%jobId%" ,
"job_name" : "%jobName%" ,
"job_type" : "%jobType%" ,
"app_name" : "%appName%" ,
"owner" : "%owner%" ,
"status" : "%status%" ,
"deployed_on" : "%DeployedOn%"
}
|
Auto Enabled for shared users |
Enabled
|
Restrict users from disablings this policy |
Enabled
|
Name |
SNOW_job_canceled |
Execute For |
Application Deployment |
On Event |
canceled |
Action Type |
Invoke a web service
|
Protocol |
HTTPS |
Web Service URL |
<yourServiceNowInstance.com>/api/now/table/x_cqt_cliqr_job_status_trigger |
Username |
rest.admin |
Password |
rest.admin's password |
HTTP Request Type |
POST |
Content Type |
JSON |
Body |
{
"job_id" : "%jobId%" ,
"job_name" : "%jobName%" ,
"job_type" : "%jobType%" ,
"app_name" : "%appName%" ,
"owner" : "%owner%" ,
"status" : "%status%" ,
"cancelled_on" : "%CancelledOn%"
}
|
Auto Enabled for shared users |
Enabled
|
Restrict users from disablings this policy |
Enabled
|
How is a user enabled to deploy from ServiceNow to CloudCenter?
In order to be able to deploy from ServiceNow to CloudCenter these steps must be followed in ServiceNow.
- Navigate to the ServiceNow backend.
- Find the Users table under Users and Groups.
- Click New.
- Fill out the information and ensure the email address is unique (ServiceNow does not check for uniqueness but CloudCenter requires it).
Once the user is created search for the user and add it to two groups:
- Cliqr - Deals with linking ServiceNow and activation profiles.
- Cloud Marketplace Consumers - Creates the user in CloudCenter and receives the API key back.
The user also needs permissions to any of the environments and applications that they will deploy in CloudCenter to successfully be able to deploy from ServiceNow.
How is a user able to be confirmed to have been successfully created in CloudCenter from ServiceNow?
When a user in ServiceNow is created, the user is attempted to be created in CloudCenter if a user is successfully created in CloudCenter the API key is sent back to ServiceNow. To check this go to the User API Keys table in ServiceNow and see if there is an API key for that user.
What is the process to deploy applications in CloudCenter from ServiceNow?
In order to order a new service through ServiceNow follow these steps.
- Navigate to the CloudCenter catalog in ServiceNow.
- Ensure the user who requests the service in ServiceNow has the appropriate permissions in CloudCenter otherwise they will not have access to those System Tags or Environment in the service request screen.
- Set the deployment time. If the deployment time is for the future ServiceNow will hold the request until the time is met and then send the request to CloudCenter.
- Set the terminate time. Out of the box ServiceNow will terminate the deployments at that time not suspend.
- Once submitted, the order waits for approval by a user with approval permissions.
- Service Requests can be managed from the Service Instances tab by ServiceNow users.
What are some of the main troubleshooting points between the integration?
The main issue seen with the integration is permission mismatches between CloudCenter and ServiceNow. Applications and Deployment Environments must be shared with the users in CloudCenter that do the deployments in ServiceNow.
Additional information can be found about users and their permissions through the backend of ServiceNow and navigate to the user properties table.
If other issues arise within ServiceNow itself logs can be found in the backend under system logs.
Is there any heartbeat checking of ServiceNow by CloudCenter in case ServiceNow goes down?
There is no heartbeat checking by CloudCenter, all information is directly pushed by CloudCenter to ServiceNow, if ServiceNow goes down in the process information may or might not be delivered properly.
Related Information
- This information referred to the latest version of CloudCenter ServiceNow integration which is v1.4, if you use a different version there might be subtle changes between them and you should consult your specific version documentation if further information is needed.
- Technical Support & Documentation - Cisco Systems