# ServiceNow CMDB

> Configure and use the OneFuse ServiceNow CMDB module with the OneFuse XUI

---

Site [llms.txt](/llms.txt)

---

To learn more about this OneFuse module, refer to [ServiceNow CMDB](/docs/onefuse/configure/modules/servicenow-cmdb/).

## Prerequisites

1. Configure OneFuse [Property Set(s)](/docs/onefuse/templating/property-sets/) and OneFuse Module Policies.
1. [Install OneFuse XUI](/docs/onefuse/consume/onefuse-xui/getting-started/#install-onefuse-xui) per CloudBolt CMP.
1. Review an overview on [OneFuse Modules](/docs/onefuse/consume/onefuse-xui/modules/) with CloudBolt CMP.
1. Create a new **Blueprint** (if none exist) or determine which existing Blueprint(s) will utilize this OneFuse Module. Resource: [Blueprints](/docs/cmp/use/blueprints/).

## Configure the Blueprint

1. **Know the name of the OneFuse Connection Info** created via [OneFuse XUI initial setup](/docs/onefuse/consume/onefuse-xui/getting-started/#initial-setup).
1. **Determine *which* OneFuse ServiceNow CMDB Policy to run** for this Blueprint.
1. **Update the Blueprint** to add in necessary parameters to invoke a OneFuse ServiceNow CMDB Policy.
1. **Deploy the Blueprint** to provision a deployment and create ServiceNow CMDB Configuration Item(s) and run the Provision IRE Template.
1. **Performing specific Day2 actions on the Resource** will update the ServiceNow CMDB CI(s) accordingly and run the Update IRE Template.
1. **Destroy the Deployment** to update the ServiceNow CMDB CI(s) with the specified deprovision status and IRE Template.

### Update the Blueprint

1. Log in to **CloudBolt CMP**.
1. If not already on the **Catalog** page, select **Catalog** from the main menu.
1. Search and find the desired CloudBolt Blueprint.
1. **Edit the Blueprint** by selecting the gear icon on the bottom-right of the Catalog Item.

#### Add in necessary Parameters

The following Parameters need to exist on the Blueprint.

Learn more about [CloudBolt Parameters](/docs/cmp/configure/order-forms-and-pricing/parameters/) for: [Blueprints](/docs/cmp/use/blueprints/customize-order-form/blueprint-level-parameters/), [Environments](/docs/cmp/use/blueprints/customize-order-form/group-and-environment-parameters/), and [Groups](/docs/cmp/configure/order-forms-and-pricing/parameters/).

**Call a ServiceNow CMDB Policy:**

| Parameter Name Format | Parameter Value Format |
| --- | --- |
| `OneFuse_ServiceNowCmdbPolicy` | `<OneFuse Connection Info Name>:<ServiceNow CMDB Policy Name>` |

**Example Parameter:**

```yaml
OneFuse_ServiceNowCmdbPolicy: 'OneFuse:MyServiceNowCmdbPolicy'
```

##### Additional helpful properties passed to OneFuse Module

**Purpose: Relate OneFuse Policy executions from different OneFuse Modules together with a Tracking ID.**

| Property and Parameter | Value Format |
| --- | --- |
| `OneFuse_Tracking_Id` | A GUID (globally unique identifier) that links OneFuse Policy Executions and the resulting Managed Objects together for a given resource on a deployment. The first OneFuse Module Policy execution will **populate this Parameter** and it will be passed into other OneFuse Modules automatically. Learn more about OneFuse [Tracking ID](/docs/onefuse/concepts/tracking-id/). |

<div class="alert alert-info" role="alert">


When a Tracking ID is not provided, a Tracking ID gets generated for the Policy execution.
</div>


**Purpose: Reference a specific NIC's values to get hostname, IP Address, etc.**

| Property Format | Example |
| --- | --- |
| `OneFuse_VmNic<#>.<value>` | See examples below |

Replace `<#>` with a number from `0` to `9`, one for each NIC.

Replace `<value>` with an appropriate key: `assignment`, `dnsServers`, `dnsSuffix`, `fqdn`, `gateway`, `hostname`, `ipAddress`, `label`, `mac`, `network`, `nicLabel`, `target`

<div class="alert alert-info" role="alert">


For most use cases, NIC 0 is the primary network interface and the target hostname is a Fully Qualified Domain Name (FQDN).
</div>


Examples:

- `OneFuse_VmNic0.dnsSuffix`
- `OneFuse_VmNic0.fqdn`
- `OneFuse_VmNic0.hostname`
- `OneFuse_VmNic0.ipAddress`
- `OneFuse_VmNic0.target`: when DNS Suffix is provided, will be the FQDN; otherwise, will be the hostname (without domain).

**Purpose: Reference VM hardware information: cpu, memory, etc.**

| Property Format | Example |
| --- | --- |
| `OneFuse_VmHardware.<value>` | See examples below |

Replace `<value>` with an appropriate key: `cpuCount`, `memoryGB`, `memoryMB`, `platformUuid`, `powerState`, `totalStorageGB`

Examples:

- `OneFuse_VmHardware.cpuCount`
- `OneFuse_VmHardware.memoryGB`
- `OneFuse_VmHardware.platformUuid`
- `OneFuse_VmHardware.powerState`
- `OneFuse_VmHardware.totalStorageGB`

---

### Provision

Deploy a Blueprint with OneFuse ServiceNow CMDB Policy configured. ServiceNow CMDB CI(s) will be created in ServiceNow.

#### Outputs

The following parameter will have the generated OneFuse ServiceNow CMDB Managed Object as a JSON string on the resource.

| Parameter Name | Parameter Value Format |
| --- | --- |
| `OneFuse_ServiceNowCmdb` | *JSON string of OneFuse ServiceNow CMDB Managed Object* |

---

### Deprovision

Destroy an existing resource with OneFuse ServiceNow CMDB Module configured. ServiceNow CMDB CI(s) will be updated with the specified deprovision status in ServiceNow.

---

## Trigger Points

| Job / Process | Trigger Point Name | Run Sequence | Plugin Action Name |
| --- | --- | --- | --- |
| Provision Server | Post-Provision | 1600 | OneFuse - Provision ServiceNow CMDB |
| Server Modification | Post-Server Modification | 1600 | OneFuse - Update ServiceNow CMDB |
| Delete Server | Post-Delete | 1100 | OneFuse - De-Provision ServiceNow CMDB |
