> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# SolarWinds dynamic inventory

> Guide to creating and managing SolarWinds NCM device inventory via plugin in Itential Gateway.

To create and manage device inventory via plugin, several steps are required. This guide covers the **SolarWinds NCM (Network Configuration Manager)** plugin.

> **Info**
>
> **Related reading:** [SolarWinds NCM](https://documentation.solarwinds.com/en/success_center/ncm/content/ncm-inventory.htm)

#### Install the required Ansible collections

For SolarWinds NCM, install the following two Ansible collections using `ansible-galaxy`:

`itential-core-1.0.0.tar.gz`

`itential-plugins-1.0.0.tar.gz`

#### Add the SolarWinds plugin config file

Configure the SolarWinds NCM plugin by creating an inventory file in the inventory directory found on a typical Gateway server at the following location:

`/opt/automation-gateway/ansible/inventory/solarwinds.yml`

This example enables the SolarWinds NCM plugin.

```yaml
# Copyright 2024, Itential, Inc
# GNU General Public License v3.0+ (https://www.gnu.org/licenses/gpl-3.0.txt)
---

# The value for plugin is required and is always set to
# `itential.plugins.solarwinds`.
plugin: itential.plugins.solarwinds

# Configures the url to the server.  For example, `https://1.2.3.4` or
# `https://solarwindows.example.com`.  This value is required
base_url: <Hostname or IP address to server>

# Configures the port value to use when connecting to the server.  If this
# value is not specified, the default value of `17778` will be used
api_port: <API port>

# Configures the username to use when authenticating to the server.  This value
# is required.
username: <username used to authenticate to Solarwinds API>

# Configures the password to use when authenticating to the server.  This value
# is required.
password: <password used to authenticate to Solarwinds API>

# Enables or disables certification verification for TLS connections.  The
# default value is `True`
verify_ssl: <true | false>

# Enables or disables the use of Solarwinds ConnectionProfile as the device
# credentials.  Typically set this value to True
use_connection_profiles: <true | false>
```

#### Configure Ansible to use the SolarWinds plugin

Configure Ansible to use this plugin as the inventory source by using the following configuration. The Ansible config file is typically found on a Gateway server at the following location:

`/etc/ansible/ansible.cfg`

```ini
[defaults]
collections_path=/opt/automation-gateway/ansible/collections:/usr/share/ansible/collections
inventory=/opt/automation-gateway/ansible/inventory/solarwinds.yml

[inventory]
enable_plugins=itential.plugins.solarwinds
```

#### Confirm the plugin is working

Execute the inventory plugin with the following command to confirm everything works as intended outside of Gateway:

```bash
ansible-inventory -vvv --list
```

When executed correctly, this step should return a list of devices from SolarWinds with their associated variables.

#### Restart Gateway

Restarting Gateway should trigger the plugin to execute. Once execution finishes, you should see devices in the Ansible inventory.

```bash
sudo systemctl restart automation-gateway
```

## Troubleshooting

### Plugin can't connect to SolarWinds NCM

> **Info**
>
> Refer to [SolarWinds Platform Release Notes](https://documentation.solarwinds.com/en/success_center/orionplatform/content/release_notes/solarwinds_platform_2023-1_release_notes.htm#link3): In the SolarWinds 2023.1 release, you can continue using port 17778. However, it is being deprecated and will not be supported in a future version.

Navigate to the advanced global settings page located at:

`<SolarwindsURL>/Orion/Admin/AdvancedConfiguration/Global.aspx`

Inspect the following endpoint port flags:

* `DisableSwisRestEndpointOnPort17774`
* `DisableSwisRestEndpointOnPort17778`

### Passwords not appearing

Check the settings. If you set the inventory file `use_connection_profiles` flag to `true`, and only `ansible_user` has a value (but `ansible_password` does not), try the following:

1. Log in to SolarWinds using an `admin` account.
2. Navigate to the advanced global settings page located at `<SolarwindsURL>/Orion/Admin/AdvancedConfiguration/Global.aspx`.
3. Uncheck the flag `HideSwisConnectionProfilePasswords` to expose inventory passwords to the plugin.
4. Save the settings.