Skip to content

Commit 93a216f

Browse files
authored
Merge pull request #484 from nautobot/release-v2.7.0
Release v2.7.0
2 parents cd88356 + 847ae19 commit 93a216f

File tree

113 files changed

+11198
-816
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+11198
-816
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ This Nautobot application framework includes the following integrations:
3131
- Device42
3232
- Infoblox
3333
- IPFabric
34+
- Itential
3435
- ServiceNow
3536

3637
Read more about integrations [here](https://docs.nautobot.com/projects/ssot/en/latest/user/integrations). To enable and configure integrations follow the instructions from [the install guide](https://docs.nautobot.com/projects/ssot/en/latest/admin/install/#integrations-configuration).
@@ -79,6 +80,7 @@ The SSoT framework includes a number of integrations with external Systems of Re
7980
* Arista CloudVision
8081
* Device42
8182
* Infoblox
83+
* Itential
8284
* ServiceNow
8385

8486
> Note that the Arista CloudVision integration is currently incompatible with the [Arista Labs](https://labs.arista.com/) environment due to a TLS issue. It has been confirmed to work in on-prem environments previously.
@@ -114,6 +116,9 @@ This project includes code originally written in separate Nautobot apps, which h
114116
[@nniehoff](https://github.com/nniehoff),
115117
[@qduk](https://github.com/qduk),
116118
[@ubajze](https://github.com/ubajze)
119+
- [nautobot-plugin-ssot-device42](https://github.com/nautobot/nautobot-plugin-ssot-device42):
120+
Thanks
121+
[@jdrew82](https://github.com/jdrew82)
117122
- [nautobot-plugin-ssot-infoblox](https://github.com/nautobot/nautobot-plugin-ssot-infoblox):
118123
Thanks
119124
[@FragmentedPacket](https://github.com/FragmentedPacket),

changes/484.housekeeping

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Releasing 2.7.0

development/creds.example.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ MYSQL_PASSWORD=${NAUTOBOT_DB_PASSWORD}
2929
NAUTOBOT_ARISTACV_CVP_PASSWORD="changeme"
3030
NAUTOBOT_ARISTACV_CVP_TOKEN="changeme"
3131

32+
NAUTOBOT_SSOT_DEVICE42_PASSWORD="changeme"
33+
3234
NAUTOBOT_SSOT_INFOBLOX_PASSWORD="changeme"
3335

3436
# ACI Credentials. Append friendly name to the end to identify each APIC.

development/development.env

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ NAUTOBOT_CELERY_TASK_TIME_LIMIT=7200
4545
NAUTOBOT_SSOT_HIDE_EXAMPLE_JOBS="False"
4646
NAUTOBOT_SSOT_ALLOW_CONFLICTING_APPS="False"
4747

48-
NAUTOBOT_SSOT_ENABLE_ACI="True"
48+
NAUTOBOT_SSOT_ENABLE_ACI="False"
4949
NAUTOBOT_SSOT_ACI_TAG="ACI"
5050
NAUTOBOT_SSOT_ACI_TAG_COLOR="0047AB"
5151
NAUTOBOT_SSOT_ACI_TAG_UP="UP"
@@ -57,7 +57,7 @@ NAUTOBOT_SSOT_ACI_IGNORE_TENANTS="[mgmt,infra]"
5757
NAUTOBOT_SSOT_ACI_COMMENTS="Created by ACI SSoT Integration"
5858
NAUTOBOT_SSOT_ACI_SITE="Data Center"
5959

60-
NAUTOBOT_SSOT_ENABLE_ARISTACV="True"
60+
NAUTOBOT_SSOT_ENABLE_ARISTACV="False"
6161
NAUTOBOT_ARISTACV_CONTROLLER_SITE=""
6262
NAUTOBOT_ARISTACV_CREATE_CONTROLLER="True"
6363
NAUTOBOT_ARISTACV_CVAAS_URL="www.arista.io:443"
@@ -69,12 +69,12 @@ NAUTOBOT_ARISTACV_IMPORT_ACTIVE="False"
6969
NAUTOBOT_ARISTACV_IMPORT_TAG="False"
7070
NAUTOBOT_ARISTACV_VERIFY=True
7171

72-
NAUTOBOT_SSOT_ENABLE_DEVICE42="True"
72+
NAUTOBOT_SSOT_ENABLE_DEVICE42="False"
7373
NAUTOBOT_SSOT_DEVICE42_HOST=""
7474
NAUTOBOT_SSOT_DEVICE42_USERNAME=""
7575
NAUTOBOT_SSOT_DEVICE42_PASSWORD=""
7676

77-
NAUTOBOT_SSOT_ENABLE_INFOBLOX="True"
77+
NAUTOBOT_SSOT_ENABLE_INFOBLOX="False"
7878
NAUTOBOT_SSOT_INFOBLOX_DEFAULT_STATUS="Active"
7979
NAUTOBOT_SSOT_INFOBLOX_ENABLE_SYNC_TO_INFOBLOX="True"
8080
NAUTOBOT_SSOT_INFOBLOX_IMPORT_OBJECTS_IP_ADDRESSES="True"
@@ -88,11 +88,13 @@ NAUTOBOT_SSOT_INFOBLOX_USERNAME="changeme"
8888
NAUTOBOT_SSOT_INFOBLOX_VERIFY_SSL="True"
8989
# NAUTOBOT_SSOT_INFOBLOX_WAPI_VERSION=""
9090

91-
NAUTOBOT_SSOT_ENABLE_SERVICENOW="True"
91+
NAUTOBOT_SSOT_ENABLE_SERVICENOW="False"
9292
SERVICENOW_INSTANCE=""
9393
SERVICENOW_USERNAME=""
9494

95-
NAUTOBOT_SSOT_ENABLE_IPFABRIC="True"
95+
NAUTOBOT_SSOT_ENABLE_IPFABRIC="False"
9696
IPFABRIC_HOST="https://ipfabric.example.com"
9797
IPFABRIC_SSL_VERIFY="True"
9898
IPFABRIC_TIMEOUT=15
99+
100+
NAUTOBOT_SSOT_ENABLE_ITENTIAL="True"

development/docker-compose.mysql.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ services:
1919
db:
2020
image: "mysql:8"
2121
command:
22-
- "--default-authentication-plugin=mysql_native_password"
2322
- "--max_connections=1000"
2423
env_file:
2524
- "development.env"

development/nautobot_config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@
196196
"enable_device42": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_DEVICE42")),
197197
"enable_infoblox": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_INFOBLOX")),
198198
"enable_ipfabric": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_IPFABRIC")),
199+
"enable_itential": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ITENTIAL")),
199200
"enable_servicenow": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_SERVICENOW")),
200201
"hide_example_jobs": is_truthy(os.getenv("NAUTOBOT_SSOT_HIDE_EXAMPLE_JOBS")),
201202
"device42_host": os.getenv("NAUTOBOT_SSOT_DEVICE42_HOST", ""),

docs/admin/integrations/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ This Nautobot app supports the following integrations:
77
- [Device42](./device42_setup.md)
88
- [Infoblox](./infoblox_setup.md)
99
- [IPFabric](./ipfabric_setup.md)
10+
- [Itential](./itential_setup.md)
1011
- [ServiceNow](./servicenow_setup.md)

docs/admin/integrations/infoblox_setup.md

Lines changed: 162 additions & 103 deletions
Large diffs are not rendered by default.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Itential Integration Setup
2+
3+
This guide will walk you through steps to set up Itential integration with the `nautobot_ssot` app.
4+
5+
## Prerequisites
6+
7+
Before configuring the integration, please ensure, that `nautobot-ssot` app was [installed with the Itential integration extra dependencies](../install.md#install-guide).
8+
9+
```shell
10+
pip install nautobot-ssot[itential]
11+
```
12+
13+
## Configuration
14+
15+
The integration with Itential primarily utilizes the [External Integrations](https://docs.nautobot.com/projects/core/en/stable/user-guide/platform-functionality/externalintegration/?h=external) and [Secrets](https://docs.nautobot.com/projects/core/en/stable/user-guide/platform-functionality/secret/?h=secrets) features within Nautobot to set up the integration. To enable this integration, the only modification needed is to activate it in the nautobot_config.py file.
16+
17+
Below is an example snippet from `nautobot_config.py` that demonstrates how to enable the Itential integration:
18+
19+
```python
20+
PLUGINS_CONFIG = {
21+
"nautobot_ssot": {
22+
"enable_itential": True,
23+
}
24+
}
25+
```
26+
27+
Remaining configurations are performed in the Nautobot UI or through the Nautobot API.
28+
29+
### Secrets
30+
31+
The Itential integration necessitates four secret values: (1) Itential API access username, (2) Itential API access password, (3) network device access username, and (4) network device access password. You can store these secrets using the secrets provider of your choice.
32+
33+
### Secrets Group
34+
35+
When assigning secrets to a secrets group, please refer to the table below to correctly assign each secret to its respective access type and secret type.
36+
37+
| Secret Description | Access Type | Secret Type |
38+
|-----------------------|-------------|-------------|
39+
| Itential API username | REST | Username |
40+
| Itential API password | REST | Password |
41+
| Device username | GENERIC | Username |
42+
| Device password | GENERIC | Password |
43+
44+
### External Integration
45+
46+
When setting up an external integration, you must provide the following required fields:
47+
48+
1. **Name**: The unique identifier for the integration.
49+
2. **Remote URL**: The endpoint URL, including the protocol and port, if applicable.
50+
3. **Verify SSL**: A boolean value indicating whether SSL certificates should be verified.
51+
4. **Secrets Group**: The group of secrets associated with the integration, containing necessary authentication details.
52+
53+
The remote URL must include both the protocol (either http or https) and the TCP port used by the automation gateway. For example, to access the automation gateway, you would enter a URL like: https://iag.example.com:8443.
54+
55+
### Automation Gateway Management
56+
57+
To manage the Automation Gateway, navigate to Plugins -> Single Source of Truth -> Itential Automation Gateway in your application. From this interface, you can input details about the automation gateway, which include:
58+
59+
1. **Name**: Specify the name of the automation gateway.
60+
2. **Description**: Provide a brief description of what the automation gateway is used for.
61+
3. **Location**: Indicate the primary location of the devices managed by the automation gateway.
62+
4. **Location Descendants**: This boolean value determines whether the automation gateway should also manage devices in child locations of the specified primary location.
63+
5. **Enabled**: This boolean setting allows you to enable or disable inventory synchronization with the automation gateway.

docs/admin/integrations/servicenow_setup.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,4 @@ PLUGINS_CONFIG = {
8080

8181
!!! note
8282
Configuration keys are prefixed with `servicenow_`.
83+

0 commit comments

Comments
 (0)