Integration with ServiceNow and IP Fabric
Project description
ServiceNow Integration with IP Fabric
IP Fabric
IP Fabric is a vendor-neutral network assurance platform that automates the holistic discovery, verification, visualization, and documentation of large-scale enterprise networks, reducing the associated costs and required resources whilst improving security and efficiency.
It supports your engineering and operations teams, underpinning migration and transformation projects. IP Fabric will revolutionize how you approach network visibility and assurance, security assurance, automation, multi-cloud networking, and trouble resolution.
Integrations or scripts should not be installed directly on the IP Fabric VM unless directly communicated from the IP Fabric Support or Solution Architect teams. Any action on the Command-Line Interface (CLI) using the root, osadmin, or autoboss account may cause irreversible, detrimental changes to the product and can render the system unusable.
Overview
This project syncs devices from IP Fabric's Inventory to ServiceNow's CMDB Network Gear Table.
CLI Utility Installation
pip install ipfabric-snow
ServiceNow Configuration
Please see the ServiceNow Configuration section for details on how to configure ServiceNow for use with this integration.
Environment Setup
Copy sample.env to .env and fill in the necessary details. During the setup, you'll be prompted to enter the necessary environment variables including URLs and authentication details for both ServiceNow and IP Fabric.
Quick Start
To sync devices from IP Fabric to ServiceNow, run:
ipfabric-snow sync devices
If the environment is not properly set up, you'll be prompted to set it up. Follow the prompts to provide the necessary details.
ipfabric-snow --help
Usage: ipfabric-snow [OPTIONS] COMMAND [ARGS]...
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --log-level TEXT Log level [default: INFO] │
│ --log-to-file --no-log-to-file Log to file [default: log-to-file] │
│ --log-file-name TEXT Log file name [default: ipf_serviceNow.log] │
│ --log-json --no-log-json Log in JSON format [default: no-log-json] │
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it or customize the installation. │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ env Setup environment variables │
│ sync Sync Inventory data with ServiceNow │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
❯ ipfabric-snow sync --help
Usage: ipfabric-snow sync [OPTIONS] COMMAND [ARGS]...
Sync Inventory data with ServiceNow
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ devices Sync devices from IP Fabric to ServiceNow │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ipfabric-snow sync devices --help
Usage: ipfabric-snow sync devices [OPTIONS] [STAGING_TABLE_NAME]
Sync devices from IP Fabric to ServiceNow
╭─ Arguments ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ staging_table_name [STAGING_TABLE_NAME] The name of the ServiceNow staging table to use. [default: x_1249630_ipf_devices] │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --show-diff --no-show-diff Display the data difference [default: no-show-diff] │
│ --diff-source TEXT Specify the main source for diff, either IPF or SNOW [default: IPF] │
│ --write-diff --no-write-diff Enable or disable writing the diff to a file [default: no-write-diff] │
│ --diff-file TEXT Path to save the diff file, if desired │
│ [default: data/{date_time}_diff_{diff_source}.json] │
│ --dry-run --no-dry-run Perform a dry run without making any changes [default: no-dry-run] │
│ --ipf-snapshot TEXT IP Fabric snapshot ID to use for the sync [default: $last] │
│ --timeout INTEGER timeout for httpx requests [default: 10] │
│ --record-limit INTEGER Limit the number of records to pull from ServiceNow. Defaults to 1000 │
│ [default: 1000] │
│ --output-verbose --no-output-verbose adds more detail to the output. Identifies which keys changed per device │
│ [default: no-output-verbose] │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
example of sync devices command:
```shell
ipfabric-snow --log-level DEBUG sync devices --show-diff --diff-source SNOW --ipf-snapshot "12dd8c61-129c-431a-b98b-4c9211571f89" --output-verbose --timeout 30 --record-limit 1000
Development
Poetry
Clone the repository and run
poetry install
Invoke
This project uses Invoke for task automation. To see a list of available tasks, run:
invoke --list
Clearing the Netgear Table
During Development, you may want to clear the netgear table in ServiceNow. To clear the netgear table, run:
❯ invoke clear-netgear-table
Any Changes to ServiceNow Application should be merged into the main_snow_app branch
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ipfabric_snow-0.1.0b14.tar.gz
.
File metadata
- Download URL: ipfabric_snow-0.1.0b14.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.1 Darwin/23.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3f788c7cdd43f5dff22a30c7983f0e675ee8a1f470b9f1d2837886b83d21bd0 |
|
MD5 | 1fdeb2bd81ee4e7dc02627ddb8402ce5 |
|
BLAKE2b-256 | 62cd0e0e4eb1607cf77c2bd155f3271c806ca3bd4b2622da4fe328a6e3458abb |
File details
Details for the file ipfabric_snow-0.1.0b14-py3-none-any.whl
.
File metadata
- Download URL: ipfabric_snow-0.1.0b14-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.1 Darwin/23.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2a79f30509ed1d3922b46189887df264c03635fb8a9c2503345775aaebd4fb2 |
|
MD5 | ee3615cf3d6b6028d959f983040d5d46 |
|
BLAKE2b-256 | bfc81484cdabed4050bd848db30fc2e7b3a2faa0c46ab5760643dfe8704b1441 |