Overview

NextGen gateway facilitates the new feature called Zero-touch onboarding. This feature helps customers with easy onboarding. Zero-touch onboarding reduces the customer efforts like creating credentials, discovery profiles, and integrations. Using the simple YAML configuration files these are created automatically and onboard the customer.

Please refer OpsRamp’s Collector Bootstrap Tool for general guidelines on how to install and register NextGen gateway.

YAML Discovery Configuration

Following is the sample YAML configuration that we need to prepare before registering the gateway to the OpsRamp cloud.

discovery-config.yaml

Sample YAML definition file (Version 01)

This V1 YAML configuration will work for Classic apps.

---
gatewayprofile:
  name: Gateway Profile
  description: Management Profile for Gateway
  type: Gateway
discovery:
- type: snmp
  credential:
    credentialType: SNMP
    name: SNMP Credentials
    description: SNMP Device Credentials
    transportType: HTTP
    timeoutMs: 15000
    spSecure: false
    port: 161
    snmpVersion: V2
    community: public
  discoveryProfile:
    name: SNMP Discovery Profile
    discoveryType: gateway
    discoveryProfileType: SNMP
    deviceType: ''
    credentialSet: SNMP Credentials
    ipDetails:
      discoveryType: IPRANGE
      ipRange: 172.26.1.18,172.26.1.19
    gatewayScheduleFlag: 'true'
    discoverySchedule:
      patternType: DAILY
      pattern: '1'
      startTime: '02'
    customParams:
      discUsingCdpFdpLldpEtc: 'true'
- type: VMWare
  credential:
    credentialType: VMWARE
    description: VMWare Device Credentials
    name: VMWare Credentials
    timeoutMs: 15000
    secure: true
    port: 443
    userName: admin@user
    password: admin@1234
  integration:
    displayName: VMWare-172.25.0.13
    ipAddress: 172.25.0.13
    credentialSet: VMWare Credentials
    discoveryProfiles:
    - policy:
        actions:
        - action: MANAGE DEVICE
        entityType: ALL
        matchType: ANY
        rules:
        - filterType: ANY_CLOUD_RESOURCE
      scanNow: true
      schedule:
        pattern: '1'
        patternType: DAILY
        startTime: 18
- type: VMWare
  credential:
    credentialType: VMWARE
    description: VMWare Device Credentials
    name: VMWare Credentials
    timeoutMs: 15000
    secure: true
    port: 443
    userName: admin@user
    password: admin@1234
  integration:
    displayName: VMWare-172.25.0.12
    ipAddress: 172.25.0.12
    credentialSet: VMWare Credentials
    discoveryProfiles:
    - policy:
        actions:
        - action: MANAGE DEVICE
        entityType: ALL
        matchType: ANY
        rules:
        - filterType: ANY_CLOUD_RESOURCE
      scanNow: true
      schedule:
        pattern: '1'
        patternType: DAILY
        startTime: 18

Sample YAML definition file (Version 02)

This V2 YAML configuration will work for Classic apps and SDK 2.0 Apps.

With the enhanced zero-touch onboarding discovery configuration, users can directly provide the API JSON payload which is available in OpsRamp public API documentation and no need to convert JSON payload to YAML. Also, users will notify the error message when there is an issue with the given discovery configuration.

This improved feature supports SDK 2.0 apps and with this improvement, the installation process for SDK2.0 apps will be automated.

---
apiVersion: v2
discovery:
  - classicApp:
      - app: VMWare
        config:
          {
            "credential":
              {
                "credentialType": "VMWARE",
                "description": "VMWare Device Credentials",
                "name": "VMWare Credentials",
                "timeoutMs": 15000,
                "secure": true,
                "port": 443,
                "userName": "admin@user",
                "password": "admin@1234",
              },
            "integration":
              {
                "displayName": "172.25.0.13",
                "ipAddress": "172.25.0.13",
                "credentialSet": "VMWare Credentials",
                "discoveryProfiles":
                  [
                    "name": "VMWare 172.25.0.13 Profile",
                    {
                      "policy":
                        {
                          "actions": [{ "action": "MANAGE DEVICE" }],
                          "entityType": "ALL",
                          "matchType": "ANY",
                          "rules": [{ "filterType": "ANY_CLOUD_RESOURCE" }],
                        },
                      "scanNow": true,
                      "schedule":
                        {
                          "pattern": "1",
                          "patternType": "DAILY",
                          "startTime": 18,
                        },
                    },
                  ],
              },
          }
      - app: VMWare
        config:
          {
            "credential":
              {
                "credentialType": "VMWARE",
                "description": "VMWare Device Credentials",
                "name": "VMWare Credentials",
                "timeoutMs": 15000,
                "secure": true,
                "port": 443,
                "userName": "admin@user",
                "password": "admin@1234",
              },
            "integration":
              {
                "displayName": "172.25.0.12",
                "ipAddress": "172.25.0.12",
                "credentialSet": "VMWare Credentials",
                "discoveryProfiles":
                  [
                    "name": "VMWare 172.25.0.13 Profile",
                    {
                      "policy":
                        {
                          "actions": [{ "action": "MANAGE DEVICE" }],
                          "entityType": "ALL",
                          "matchType": "ANY",
                          "rules": [{ "filterType": "ANY_CLOUD_RESOURCE" }],
                        },
                      "scanNow": true,
                      "schedule":
                        {
                          "pattern": "1",
                          "patternType": "DAILY",
                          "startTime": 18,
                        },
                    },
                  ],
              },
          }
      - app: SNMP
        config:
          {
            "credential":
              {
                "credentialType": "SNMP",
                "name": "SNMP Credentials",
                "description": "SNMP Device Credentials",
                "transportType": "HTTP",
                "timeoutMs": 15000,
                "spSecure": false,
                "port": 161,
                "snmpVersion": "V2",
                "community": "public",
              },
            "discoveryProfile":
              {
                "name": "SNMP Discovery Profile",
                "discoveryType": "gateway",
                "agentProfileId": "13855",
                "discoveryProfileType": "SNMP",
                "deviceType": "",
                "credentialSet": "SNMP Credentials",
                "ipDetails":
                  {
                    "discoveryType": "IPRANGE",
                    "ipRange": "172.26.1.18,172.26.1.19",
                  },
                "gatewayScheduleFlag": "true",
                "discoverySchedule":
                  { "patternType": "DAILY", "pattern": "1", "startTime": "02" },
                "customParams": { "discUsingCdpFdpLldpEtc": "true" },
              },
          }
  - sdkApp:
      - app: data-domain
        version: 2.0.0
        configs:
          - config: {
                "name": "data_domain_config1",
                "schedule":
                  {
                    "patternType": "MINUTES",
                    "pattern": "20",
                    "startTime": "00:20:00",
                  },
                "config":
                  {
                    "port": "9996",
                    "ipAddress": "172.25.252.12",
                    "notificationAlerts": false,
                    "isSecure": false,
                    "Credential": ["SByTpYg7fauQtPfkzM6pDbpf"],
                  },
                "nativeTypes":
                  { "Data Domain Backup Server": { "resourceType": "Server" } },
              }
          - config: {
                "name": "data_domain_config2",
                "schedule":
                  {
                    "patternType": "MINUTES",
                    "pattern": "20",
                    "startTime": "00:30:00",
                  },
                "config":
                  {
                    "port": "9996",
                    "ipAddress": "172.25.252.13",
                    "notificationAlerts": false,
                    "isSecure": false,
                    "Credential": ["SByTpYg7fauQtPfkzM6pDbpf"],
                  },
                "nativeTypes":
                  { "Data Domain Backup Server": { "resourceType": "Server" } },
              }
      - app: hpe-3par
        version: 4.0.0
        configs:
          - config: {
                "name": "hpe_3par_config1",
                "schedule":
                  {
                    "patternType": "MINUTES",
                    "pattern": "20",
                    "startTime": "00:20:00",
                  },
                "config":
                  {
                    "isSecure": false,
                    "Port": "9996",
                    "sshPort": 443,
                    "IP Address": "172.25.252.12",
                    "notificationAlert": false,
                    "Credential": ["SByTpYg7fauQtPfkzM6pDbpf"],
                  },
                "nativeTypes":
                  { "HPE 3PAR Storage System": { "resourceType": "Storage" } ,
                  "HPE 3PAR Common Provisioning Group": { "resourceType": "Group" } ,
                  "HPE 3PAR Storage Volume": { "resourceType": "Volume" } ,
                  "HPE 3PAR VLUN": { "resourceType": "STORAGE_ARRAY_LUN" } ,
                  "HPE 3PAR Physical Disk": { "resourceType": "Storage" } ,
                  "HPE 3PAR Host": { "resourceType": "Server" } ,
                  "HPE 3PAR Port": { "resourceType": "Port" } ,
                  "HPE 3PAR Port Device": { "resourceType": "Network Device" } ,
                  "HPE 3PAR FC Switch": { "resourceType": "Switch" }
                  },
              }

How to Specify Discovery Configuration ?

opsramp-collector-start tool is required for Zero-touch onboarding.
You can download the opsramp-collector-start tool from here, and how to use this tool can be found here.

Once the YAML configuration is completed, use the opsramp-collector-start tool to register the gateway to the OpsRamp cloud by providing the configuration file as input.

Syntax

Register through a direct connection:

opsramp-collector-start install --environment {Environment} –-url {OpsRamp Server URL} –-key {Gateway unique authentication token} --config {YAML Discovery Configuration File Path}

Register through the proxy without credentials:

opsramp-collector-start install --environment {Environment} –-url {OpsRamp Server URL} –-key {Gateway unique authentication token} --proxy-protocol {Proxy Protocol http/https} --proxy-ip {Proxy IP Address} --proxy-port {Proxy Port} --config {YAML Discovery Configuration File Path}

Register through proxy with credentials:

opsramp-collector-start install --environment {Environment} –-url {OpsRamp Server URL} –-key {Gateway unique authentication token} --proxy-protocol {Proxy Protocol http/https} --proxy-ip {Proxy IP Address} --proxy-port {Proxy Port} --proxy-username {Proxy Username} --proxy-password {Proxy Password}  --config {YAML Discovery Configuration File Path}

Example

opsramp-collector-start install --environment k8s --url gatewaytest.api.opsramp.net --key 06d49ab5-a589-44f2-a68b-ee35405d5701 --config discovery-config.yml