The Zero-Touch Onboarding capability in the OpsRamp NextGen Gateway is designed to significantly simplify and accelerate the onboarding process for IT environments. This feature reduces the need for manual configurations and allows for rapid integration of customer infrastructure into the OpsRamp platform with minimal intervention.

Key Benefits:

  • Automated Setup: Automatically creates necessary app credentials, discovery profiles, and third-party integrations upon deployment.
  • YAML-Driven Configuration: Customers provide a single YAML configuration file, which the system uses to define onboarding behavior.
  • Immediate Discovery & Monitoring: Once the Gateway is registered using Zero-Touch, OpsRamp begins discovering infrastructure components and initiating monitoring workflows instantly based on the YAML configuration and settings
  • Consistency Across Environments: Ideal for both small-scale and enterprise-level environments, ensuring consistent configuration and faster time to value.

How It Works:

  1. Customers create a YAML file with parameters such as App configurations, credentials, scheduling settings, and discovery rules.
  2. The YAML file is passed to the opsramp-collector-start tool during Gateway registration.
  3. Upon successful execution:
    • The Gateway is registered with OpsRamp SaaS.
    • Discovery profiles and credentials are auto-generated.
    • Infrastructure discovery begins immediately.
    • Monitored resources are added to the appropriate collector profile.

For step-by-step installation and registration instructions, including how to use the Zero-Touch feature, refer to the Install Gateway Using OpsRamp Bootstrap Tool.

YAML Discovery Configuration

Before registering the Gateway to the OpsRamp Cloud, you must prepare a YAML configuration file that defines the onboarding parameters.

The following is a sample YAML file that illustrates the structure and key values required for Zero-Touch Onboarding:

discovery-config.yaml

Sample YAML Definition File (Version 02)

The Version 02 (V2) YAML format is the latest configuration schema used for Gateway registration and onboarding. This version supports both Classic Applications and SDK 2.0-based Applications, offering enhanced capabilities for Zero-Touch Onboarding.

Key Enhancements in V2:

  • Direct JSON Payload Support: Users can now include the full API JSON payload (as documented in the [OpsRamp Public API Documentation]) directly in the YAML file. There’s no need to manually convert JSON structures to YAML format.
  • Improved Validation & Feedback: The onboarding tool provides clear error messages when issues are found in the discovery configuration, simplifying troubleshooting.
  • Automation for SDK 2.0 Apps: V2 enables automatic installation and configuration of SDK 2.0 apps, streamlining the deployment process.
---
apiVersion: v2
discovery:
  - classicApp:
      - app: VMWare
        config:
          {
            "credential":
              {
                "credentialType": "VMWARE",
                "description": "VMWare Device Credentials",
                "name": "VMWare Credentials",
                "timeoutMs": 15000,
                "secure": true,
                "port": 443,
                "userName": "test",
                "password": "Pass@1234",
              },
            "tags": 
              {
                "billing_id":"billing_metering"
              },
            "integration":
              {
                "displayName": "172.25.0.16",
                "ipAddress": "172.25.0.16",
                "credentialSet": "VMWare Credentials",
                "discoveryProfiles": [
                    {
                    "name": "VMWare 172.25.0.16 Profile",
                    "scanNow": true,
                    "schedule": {
                        "patternType": "HOURLY",
                        "pattern": "1",
                        "startTime": "1:00:00"
                    },
                    "policy": {
                        "actions": [
                            {
                              "action": "MANAGE DEVICE"
                            }
                        ],
                        "entityType": "any",
                        "matchType": "ANY",
                        "rules": [
                          {
                            "resourceType": []
                          },
                        ],
                      },
                    }
                 ],
              },
          }
      - 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": "TEST-SNMP-16-18-19",
                "schedule": {
                "patternType": "HOURLY",
                "pattern": "1",
                "startTime": "1:00:00"
                },
                "config": {
                "deviceType": "SNMP Network Device",
                "networkDepth": "1",
                "discoveryType": "Iprange",
                "credentials": [
                  "dfvTjvaZEkuxavqEmeZuxVz6"
                ],
                "ipRange": "172.26.1.18, 172.26.1.19",
                "snmpEnabledDevice": true,
                "cdp": true,
                "ospf": true,
                "bgp": true,
                "bridge": true,
                "loadBalancer": false,
                "revDnsLookUp": false,
                "discoverVoipPhones": false,
                "advOpt": false,
                "tcpPort": "443",
                "nmapResult": true,
                "policy": {
                  "action": "MANAGE DEVICE"
                }
                },
                  "scheduleNone": false
                }
              }
  - sdkApp:
      - app: vmware-nsx-t
        version: 10.0.0
        configs:
          - config: {
                "credential":
                {
                  "credentialType": "APPLICATION",
                  "userName": "test",
                  "password": "Pass@1234",
                  "name": "test-nsx-t",
                  "description": "test",
                },
                "name": "vmware_nsx_t_config1",
                "schedule":
                  {
                    "patternType": "MINUTES",
                    "pattern": "20",
                    "startTime": "00:20:00",
                  },
                "config": {
                  "port": "9092",
                  "isSecure": false,
                  "apiTimeOuts": false,
                  "alertSeverity": "[\"CRITICAL\",\"HIGH\",\"MEDIUM\",\"LOW\"]",
                  "socketTimeout": 10,
                  "connectionTimeout": 60,
                  "alertClearedStatus": "[\"ACKNOWLEDGED\",\"SUPPRESSED\",\"RESOLVED\"]",
                  "alertConfiguration": false,
                  "notificationAlerts": false,
                  "alertOnRootResource": true,
                  "alertSeverityMapping": "{\"CRITICAL\":\"Critical\",\"HIGH\":\"Warning\",\"MEDIUM\":\"Warning\",\"LOW\":\"Info\"}",
                  "connectionRequestTimeout": 10,
                  "ipAddress": "172.25.252.63",
                  "credential": "test-nsx-t",
                },
                "allResources": true,
              }
      - app: hpe-3par
        version: 4.0.1
        configs:
          - config: {
                "credential":
                {
                  "credentialType": "APPLICATION",
                  "userName": "test",
                  "password": "Pass@1234",
                  "name": "hpe-3par",
                  "description": "test",
                },
                "name": "HPE 3PAR",
                "schedule": {
                  "patternType": "HOURLY",
                  "pattern": "1",
                  "startTime": "1:00:00"
                },
                "config": {
                  "category": "[\"1\",\"2\"]",
                  "isSecure": false,
                  "alertSeverity": "[\"FATAL\",\"CRITICAL\",\"MAJOR\",\"MINOR\"]",
                  "notificationAlert": true,
                  "alertConfiguration": false,
                  "alertSeverityMapping": "{\"FATAL\":\"Critical\",\"CRITICAL\":\"Critical\",\"MAJOR\":\"Warning\",\"MINOR\":\"Warning\",\"DEGRADED\":\"Warning\",\"INFORMATIONAL\":\"Info\",\"DEBUG\":\"Info\",\"UNKNOWN\":\"Info\"}",
                  "IP Address": "172.25.252.63",
                  "Port": "9097",
                  "sshPort": "443",
                  "Credential": "hpe-3par"
                },
                "allResources": true
              }

How to Specify Discovery Configuration for Zero-Touch Onboarding

The OpsRamp Collector Bootstrap Tool is essential for performing Zero-Touch Onboarding of the NextGen Gateway. This tool simplifies the registration process by allowing you to pass pre-defined discovery configurations via a YAML file.

  • Step 1: Download and install the OpsRamp Collector Bootstrap Tool by following the instructions in the Install Gateway Using OpsRamp Bootstrap Tool.
  • Step 2: Prepare your discovery configuration YAML file according to your environment needs.
  • Step 3: Use the Bootstrap Tool to register the Gateway with the OpsRamp cloud by specifying the YAML configuration file using the --config flag.

Registration Syntax & Examples

  1. Register via Direct Connection (No Proxy)
    opsramp-collector-start install --environment {Environment} --url {OpsRamp Server URL} --key {Gateway Authentication Token} --config {Path to YAML Config File}
  2. Register through a Proxy without Authentication
    opsramp-collector-start install --environment {Environment} --url {OpsRamp Server URL} --key {Gateway Authentication Token} --proxy-protocol {http|https} --proxy-ip {Proxy IP Address} --proxy-port {Proxy Port} --config {Path to YAML Config File}
  3. Register through a Proxy with Authentication
    opsramp-collector-start install --environment {Environment} --url {OpsRamp Server URL} --key {Gateway Authentication Token} --proxy-protocol {http|https} --proxy-ip {Proxy IP Address} --proxy-port {Proxy Port} --proxy-username {Username} --proxy-password {Password} --config {Path to YAML Config File}
    Example Command:
    opsramp-collector-start install --environment k8s --url gatewaytest.api.opsramp.net --key 06d49ab5-a589-44f2-a68b-ee35405d5701 --config discovery-config.yml