02-26-2020 03:23 PM
I am quite new to ServiceNow. I am working with a developer instance to develop a proof of concept to integrate ServiceNow with Terraform. I got it working with a "Terraform Environment" (a Linux vm with Terraform installed). I could not get Discovery to work with Terraform Cloud. I am looking for any tips on what I might be doing wrong.
I created a Config Provider with the following settings:
Based on some trial and error, I think the URL is correct. I have tried using an API Token for the User, Group and Organization without any luck.
When I run this, I see some lines in my MID Server log that look valid and don't report any errors.
I don't understand what "Ensure that you create a credential alias with Type > Connection." from this page:
https://docs.servicenow.com/bundle/orlando-it-operations-management/page/product/cloud-management-v2-setup/task/terraform-enterprise-config-provider.html
Not sure if that is supposed to say "Type > Credential". I added an alias of type Credential, but I don't really know what that does. Adding an Alias of Type "Connection and Credential" generates a validation message: "Alias X is not of type Credential"
I tried upgrading my dev instance to Orlando to see if that would make a difference, but it did not.
I see the following entries in my ServiceNow System Log each time I run Discovery (messages at the bottle are generated first).
==========
Failure while processing chunk : ChunkedStepResult{correlationId='68afdebfdbcf00102655d426ca961901', error='
Outbound REST call to get TFE VCS failed StatusCode:401, ErrorCode:3, Message:Method failed: (/api/v2/organizations/ngc-cssg/oauth-clients) with code: 401 - Invalid username/password combo', output='[]', chunkNumber=1, totalChunks=1, isRouteComplete=true, exception=null}:
==========
Failure to handle chunked result: com.snc.cloud.mgmt.modules.svccatalog.orchestration.BPOException:
Outbound REST call to get TFE VCS failed StatusCode:401, ErrorCode:3, Message:Method failed: (/api/v2/organizations/ngc-cssg/oauth-clients) with code: 401 - Invalid username/password combo:
==========
Failed to parse the output of new CMPCIRelationshipUtil().getLdcAndServiceAccount('<param value removed>'), exception: : com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
==========
Failed to parse the output of new CMPCIRelationshipUtil().getLdcAndServiceAccount('<param value removed>'), exception: : com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
==========
I am able to call /api/v2/organizations/ngc-cssg/oauth-clients using curl (from a command prompt on my Linux based MID Server) and passing in any of the 3 API Tokens (User, Group or Org) following the Terraform Cloud API. (example here: https://www.terraform.io/docs/cloud/api/oauth-clients.html)
Any tips appreciated! Thanks!!
Solved! Go to Solution.
02-26-2020 08:40 PM
Hi Brent,
Here are steps to create credentials for Terraform Enterprise:
02-26-2020 08:40 PM
Hi Brent,
Here are steps to create credentials for Terraform Enterprise:
02-27-2020 06:54 AM
Thanks. Adding "Bearer " to the front of my API Key was the missing piece. It would have been nice if the docs over at docs.servicenow.com mentioned this. It would have saved me a few days of frustrating work. At least I got the Terraform Environment working so my demo this week was not a total failure.
Thanks again!
02-27-2020 08:27 AM
Hi Brent,
We will be updating the docs.servicenow.com to have appropriate information. Sorry to hear that you had to spend a few frustrating days on that. We will make it better in the coming days.
regards
Ashok Madhavan
03-24-2020 11:25 AM
This is helpful, I was able to get through the initial discovery. But I'm still having problems for VCS even with the proper formatting of the token. I'm seeing the following stack via cloud trails:
details:
Failed to get the repositories from VCS system, details:Failed with status code and message: 401: {"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"} com.snc.cloud.mgmt.modules.svccatalog.orchestration.BPOException: details:
Failed to get the repositories from VCS system, details:Failed with status code and message: 401: {"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}
at com.snc.cloud.mgmt.modules.svccatalog.orchestration.result.StepResultHandler.checkFlowReturnStatus(StepResultHandler.java:287)
at com.snc.cloud.mgmt.modules.svccatalog.orchestration.result.StepResultHandler.validateResult(StepResultHandler.java:169)
at com.snc.cloud.mgmt.modules.svccatalog.orchestration.result.StepResultHandler.process(StepResultHandler.java:92)
Any help is greatly appreciated.