In this article, I’ll show you how you can quickly perform an integration between VCAC and Service Now for the purposes of creating and updating CIs in the CMDB for VM machine instances. I’m using the VCO/VCAC plugin for this integration, instead of the previously used VCAC Designer (no longer required!). For this integration you will need:
- VCAC 6.x – I’ve tested this with versions 6.01 and 6.1
- VCO/VCAC plugin version 6.x – Any version of the plugin from 6.x on should work fine
- Make sure you have already run the “Install vCO Customization” workflow as part of the vCO/VCAC plugin previously. If not, you must run this first to enable workflow stub integration
- Experience with VCAC, VCO, custom properties, and workflow stubs.
The basic high level steps are as follows:
1) Download and install the package I’ve provided here: com.vmware.set.west.servicenow. You will see a new folder called SNOW with 4 new workflows for insert and update cmdb.
2) Add your Service Now SOAP host WSDL for the cmdb_ci_vmware_instance table. You can do this by running the Add a SOAP host workflow. Once done, make sure you can browse it from the Explorer tab in VCO.
3) Update the Configuration item in VCO to reflect your new SOAP host. This will allow the workflows to point to the correct SOAP host you added in the previous step.
4) Run the VCO workflows for adding the master workflows to your VCAC stubs. Choose either BuildingMachine or MachineProvisioned for the master_cmdb_insert workflow, and MachineDisposing for updating the master_cmdb_update workflow. The workflow is called “Assign a state change workflow to a blueprint and its virtual machines” and will add the custom properties to one or more of your Blueprints when you select each of the respective master workflows.
5) Create a Build Profile in VCAC to run the stub properties and VCO workflow IDs and attach it to a Blueprint. You can basically copy and past the workflow ID and property from the Blueprint into the Build Profile.
6) Request your Blueprint from the catalog. You will see a new CI in your Service Now instance. You should also notice the sys_id as a custom property for the newly provisioned VM in VCAC.
7) Destroy the machine in VCAC and you will notice the updated CI in Service Now is set to Retired with additional notes
8) Modify and add fields to your liking.
Nice tutorial, but doesn’t work for me.
After importing the workflow, i am able to see the new SNOW directory, but i’m unable to add SOAP host.
Here is the return :
java.io.IOException: Error accessing ‘https://MYPOC.service-now.com/cmdb_ci_vmware_instance.do?WSDL’: HTTP/1.1 403 Forbidden (Dynamic Script Module name : addSOAPHost#8)
[2014-11-04 16:00:50.773] [I] Is SSL? > true
[2014-11-04 16:00:50.835] [I] url: https://mypoc.service-now.com/cmdb_ci_vmware_instance.do?WSDL
[2014-11-04 16:00:50.836] [I] Using proxy: 192.168.77.12 on port 8080
[2014-11-04 16:01:00.927] [I] Certificate information: Properties:942077974
[2014-11-04 16:01:00.961] [I] Is certificate trusted: true
[2014-11-04 16:01:00.961] [I] Is host name verified: true
[2014-11-04 16:01:01.595] [I] Is SSL? > true
[2014-11-04 16:01:01.683] [I] url: https://MYPOC.service-now.com/cmdb_ci_vmware_instance.do?WSDL
[2014-11-04 16:01:01.684] [I] Using proxy: 192.168.77.12 on port 8080
[2014-11-04 16:01:11.757] [I] Certificate information: Properties:1555110423
[2014-11-04 16:01:11.790] [I] Is certificate trusted: true
[2014-11-04 16:01:11.790] [I] Is host name verified: true
Credentials have been verified. Any idea for this forbidden access ? A restriction from my service now account ?
Make sure the account you are using has access to the cmdb_ci_vmware table. Also, make sure the VCO/VCAC server can get out to your service now instance on 443. If ports are blocked, that could be the issue. I see you are using a proxy though. It has to be related to your account or ports/cert being blocked.
Hi Mark, thanks for your answer. The account was not correctly setup. I was able to configure it with another account.
Can you describe between step 3 and 4 :
I was able to update ServiceNow SOAP Host for CMDB under Design/Snow with the host previously added.
But i try to run the Workflow “Assign a state change workflow to a blueprint and its virtual machines”, the vcac host remain empty and vcac infrastructure administration is empty too.
Am i missing something ?
Sorry, i was missing the configuration of the Iaas Host for the vcac server.
Can you describe step 4 ? i can execute “Assign a state change workflow to a blueprint and its virtual machines” but, after choosing the iaas host, it ask to select blueprint… and i don’t see how to select your workflow (master_cmdb_insert, master_cmdb_update)
It will also allow you to choose the workflow that you intend to run as part of that blueprint. I believe the default is “workflow template”, simply click on that and browse to the CMDB workflows and select that one.
Hope that helps.
Pingback: Integrating vRealize Automation with ServiceNow | VMware Cloud Management - VMware Blogs
Pingback: Part 1 – vCloud Automation Center – Service Now Integration via vCO SOAP Plug-in – Version 1.1 – Mark Andreopoulos SET West | VMtoCloud.com
Pingback: Part 2 – vCloud Automation Center – Service Now Integration via vCO SOAP Plug-in – Version 1.1 – Mark Andreopoulos SET West | VMtoCloud.com
On requesting the blueprint from the catalog, After running the vCO workflow(Assign a state change….) I have copied the VMProvison property from the blueprint to buildprofile. I have tied the same build profile to the blueprint.
i am hitting the following error.
TypeError: Cannot find function getOperation in object notfound. (Workflow:cmdb_Insert / Scripting (item2)#1..
Am i missing something?
master_cmdb_insert workflow fails at cmdb_insert…
Raj. Trying running cmdb_insert manually (not master) to ensure that it will create a sample CMDB CI in your ServiceNow instance.
by manually, I mean run cmdb_insert from the vCO java client and input some bogus data.
me again, 9 month later : i am deploying the plug in in our new environnement (vra 6.2.1) and i’m facing an issue while trying to configure the SOAP HOST.
Adding the host was fine, but when i try to configure the soap agent under configuration, i’m unable to select the host just added.
instead of the name, i have a message telling that “missing element,” and “the linked element cannot be found”
Try to restart the services.
On provisioning I get an invalid WF ID for the workflow: WFStubMachineProvisioned. Not sure why its calling that WF.
Also getting an authentication error:
vCenter Orchestrator workflow WFStubMachineDisposing failed with error: vCenter Orchestrator returned an error: User ‘firstname.lastname@example.org’ is not authorized!..
Dan, it runs the vCO workflow on the “MachineProvisioned” stub from vCAC/vRA. You need to check the value of that custom property (WFStubeMacnineProvisioned) on your blueprint to ensure it matches the workflow ID for the Master CMDB Insert in vCO.
not authorized simply means that your user ID doesn’t have sufficient privileges. Do you have the vCAC plugin setup and working with other workflows between vCAC and vCO? Make sure the user has sufficient permissions or try another ID. If you are using 6.2.1 you can try the built-in user for VRO which uses SSO, so email@example.com
Can you post a screenshot?
Crazy. Essentially flapped the creds between an old VCO 5.5 and new VCO 6.0 and everything started working. All works now! Onto next integration steps. What can I do now that SN has CIs for VMs? What value do we get from this?
So, ServiceNow got rid of my POV instance. I am rebuilding on 2 new instances. I have my build completely documented from the first time wen everything worked. All looks good. But when I provision I get:
vCenter Orchestrator workflow WFStubMachineDisposing failed with error: Error executing vCenter Orchestrator workflow: TypeError: Cannot find function getOperation in object notfound. (Workflow:cmdb_update / Scripting (item2)#1)..
Same error someone else listed above. I tried to run the cmdb_insert Workflow and it fails right at that workflow. Im not sure if the package updated that workflow or why its bombing out. Im trying to read the script and determine what “object” is not found.
Hi Dan. If it is failing on WFStubMachineDisposing, that means something went wrong earlier in the provisioning process, because the integration first creates the CI during WFStubMachineProvisioned (or BuildingMachine). Can you look at your Infrastructure log to see why it failed prior to MachineDisposing? Also, look at Master CMDB Insert and see if the workflow ran or failed. Did it pull a sys_id.
Its actually the stubs calling master_cmdb_insert failing:
Unrecognized parameter name: disks_size (Workflow:cmdb_Insert / Scripting (item2)#8)
The XML did not come down complete. Once I pulled the SOAP XML again it worked. But then I had a permissions issue with the account used. “Soap” permissions didnt seem to work. Needed to go full admin which is probably not best practice.
Dan, that’s great to hear. By the way, how did you know the XML didn’t come down completed? What clued you into this?
It was a long road. Essentially I saw that it was having trouble with certain fields like Disks_Size, CPUs, etc. When I pulled the XML through the web browser there were entries for these records. Made sense to me as they are part of the schema. When I went into the Inventory>SOAP> Soap Instance>Insert>Input, these items were not listed. No wonder why it didn’t recognize these commands. I managed to recreate the SOAP endpoint and it worked. I did need to tweak the SN credentials to be ITIL and ITIL Admin. Seems ITIL can create and update where ITIL Admin can delete.
Pingback: Ather Beg's Useful Thoughts - How To Resolve Issues Connecting vRealize Orchestrator To Hosted ServiceNow
Pingback: vmtocloud | Feta Cloud
Pingback: vmtocloud | Feta Cloud
There is a Scoped Application that is certified by ServiceNow and VMware, which establishes Bi-Directional communication from ServiceNow through the vRA APIs, reducing the need for PowerShell, vRO, SOAP, etc. A few features it includes are:
– Native ITSM integration with ServiceNow. CMDB is automatically updated, triggers SR/CR/Incidents.
– Provisioning or Service Request failures automatically trigger Incidents in ServiceNow and can be configured with a log parsing technology to attach to the incident the latest log errors from across a vRA Enterprise Installation.
– Request vRA Services and Amazon AWS Services from the same user interface.
– Manage vRA Catalog/Service Items, BluePrints, Network Profiles, Custom Properties, etc. from ServiceNow with integration into ITSM.
– Request VM State changes from ServiceNow with integration into ITSM.
– Export BluePrints from one vRA Instance to other vRA instances.
– Manage multiple vRA Instances from ServiceNow central pane of glass.
Here is a link to the ServiceNow store to request a trial if your interested. Its also published in the VMware Solutions Exchange.