Files
netdisco/share/config.yml
Oliver Gorwits d44a8f56ea Integrate netdisco-sshcollector into Worker::Plugin architecture (#489) (#535)
* update changes and SNMP::Info dep

* Integrate netdisco-sshcollector into Worker::Plugin architecture (#489)

* Initial integration of sshcollector into Worker::Plugin architecture

 * add NodesBySSH.pm
 * update Build.PL and config.yml to integrate the new module

* Further integration of sshcollector into Worker::Plugin architecture

 * added App::Netdisco::Transport::CLI loosely based on ::SNMP counterpart
 * switched to the more prevalent two-space tabs style
 * removed various TBD items, some new ones

* Further steps to integration of sshcollector into Worker::Plugin architecture

 * cleaned up code
 * added various error handling
 * warning for bin/netdisco-sshcollector deprecation
 * device_auth allows passing master_opts to Net::OpenSSH
 * netdisco-do -D also toggles Net::OpenSSH debug

* Merged NodesBySSH.pm into Nodes.pm

 * see https://github.com/netdisco/netdisco/pull/489#pullrequestreview-205603516

* Further integration of sshcollector into Worker::Plugin architecture

 * add snmp_arpnip_also option to sshcollector device_auth
 * cleanup code

* Remove big TBD: comment from CLI.pm as doc is updated now

* add transport/cli.pm to manifest

* revert some changes to allow simpler merging

* silent exit legacy script unless explicitly requested

* move ssh code into Transport, part one

* rewrite the CLI transport to provide an API

* merge in og-get_external_credentials

Squashed commit of the following:

commit 3fe8f383a7
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Mon Mar 11 17:07:42 2019 +0000

    add debug lines and tested

commit 3249739e42
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Mon Mar 11 16:54:11 2019 +0000

    change config name to get_credentials

commit e78558397a
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Mon Mar 11 16:51:11 2019 +0000

    separate out generic device auth to DeviceAuth module

commit 249f05165f
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Wed Mar 6 18:43:31 2019 +0000

    release 2.040007

commit e3af64df77
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Wed Mar 6 18:42:47 2019 +0000

    #521-redux fix wifi date search

commit 48857ae300
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Mon Mar 4 12:03:31 2019 +0000

    release 2.040006

commit e09dab5362
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Mon Mar 4 11:39:12 2019 +0000

    #527 update List::MoreUtils version requirement

commit 6e7de3fff3
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Mon Mar 4 09:59:41 2019 +0000

    release 2.040005

commit 0c98318a45
Author: Oliver Gorwits <oliver@spike.local>
Date:   Mon Mar 4 09:57:18 2019 +0000

    #526 fix discover syntax bug

commit e9efc45182
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 14:56:48 2019 +0000

    release 2.040004

commit 6cdfd80d10
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 14:34:00 2019 +0000

    allow undiscovered neighbors report to use discover_{waps,phones} setting

commit ac381e0802
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 14:13:20 2019 +0000

    #506 was a red herring

commit b83e614c85
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 13:00:36 2019 +0000

    make discover_{phones,waps} work with LLDP capabilities as well

commit 189d234b55
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 12:47:38 2019 +0000

    check discover_no_type and friends earlier on in neighbors list build

commit 9c956466f3
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 12:32:07 2019 +0000

    also update default config for new discover_phones and discover_waps settings

commit 09d29954d2
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 12:26:50 2019 +0000

    #512 fix regression in phone/wap discovery exclusion

commit 2bae91f1b6
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 12:01:34 2019 +0000

    rename match_devicetype() to match_to_setting()

commit 57cb6ddb70
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sun Mar 3 09:19:39 2019 +0000

    fix for over-eager fix to #506

commit ef560fb59a
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 22:41:40 2019 +0000

    #506 relax device renumber so it works for an alias

commit 7a8bcb094e
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 22:23:39 2019 +0000

    #521 Search Node Date Range not working

commit a643820a62
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 21:54:27 2019 +0000

    #428 Port-Channels not showing in netmap

commit 5ba5bcd295
Merge: e7aacddb a1f95028
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 20:04:11 2019 +0000

    Merge branch 'master' of github.com:netdisco/netdisco

commit e7aacddbc6
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 20:01:05 2019 +0000

    #498 Map with VLAN filter omits unconnected devices

commit a1f95028ca
Author: nick n <39005454+inphobia@users.noreply.github.com>
Date:   Sat Mar 2 19:54:22 2019 +0100

    catch up with changes

    noticed that rc-sshcollector-core received updates to changes, add them here as well.

    didn't mention #499 & #522

commit ce1b847cea
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 18:47:44 2019 +0000

    fix bug showing no nodes when only one matches in netmap

commit 78e30a7926
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 16:28:15 2019 +0000

    #500 filtering in device/ports on native vlan duplicates entries

commit 9952f0c6c7
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 15:02:12 2019 +0000

    #499 netdisco-do renumber reports wrong ip (inphobia)

commit ca3fd8f466
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 15:00:18 2019 +0000

    #505 device renumber should update device port properties and device skips

commit 1265bc8470
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 14:52:21 2019 +0000

    #520 catch slave ports defined without a master

commit d4c7579c10
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 14:47:49 2019 +0000

    #522 TypeAhead.pm can reference empty data (inphobia)

commit 77decc23b7
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Sat Mar 2 14:45:37 2019 +0000

    #514 inconsistent results in ip inventory (inphobia)

commit 3f211650b8
Author: nick n <39005454+inphobia@users.noreply.github.com>
Date:   Fri Mar 1 12:34:42 2019 +0100

    last pieces for db schema upgrade

    last piece of #510

* import legacy sshcollector config

* add default use_legacy_sshcollector config

* remove unneeded deps

* various fixes and now tested

* enable sshcollector platform tests
2019-03-12 18:50:24 +00:00

502 lines
12 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# This is the main configuration file for Netdisco web and backend apps
#
# DO NOT EDIT THIS FILE
#
# Overrides should go to ~/environments/deployment.yml
#
# https://github.com/netdisco/netdisco/wiki/Configuration has
# in depth explanations about each setting.
# ----------------
# GENERAL SETTINGS
# ----------------
log: 'warning'
logger_format: '[%P] %U %L %m'
include_paths: []
template_paths: []
site_local_files: false
external_databases: []
# ------------
# WEB FRONTEND
# ------------
domain_suffix: ""
no_auth: false
suggest_guest: false
navbar_autocomplete: true
trust_remote_user: false
trust_x_remote_user: false
#ldap:
# servers: []
# user_string: 'MYDOMAIN\%USER%'
# base: ""
# proxy_user: ""
# proxy_pass: ""
# opts:
# debug: 3
# tls_opts: {}
path: '/'
web_plugins:
- Inventory
- Report::PortVLANMismatch
- Report::PortAdminDown
- Report::PortBlocking
- Report::PortMultiNodes
- Report::PortSsid
- Report::PortUtilization
- Report::ApChannelDist
- Report::ApClients
- Report::ApRadioChannelPower
- Report::HalfDuplex
- Report::DeviceAddrNoDNS
- Report::DeviceByLocation
- Report::InventoryByModelByOS
- Report::DeviceDnsMismatch
- Report::DevicePoeStatus
- Report::DuplexMismatch
- Report::IpInventory
- Report::ModuleInventory
- Report::Netbios
- Report::NodeMultiIPs
- Report::NodeVendor
- Report::NodesDiscovered
- Report::SsidInventory
- Report::VlanInventory
- Report::SubnetUtilization
- Report::PortLog
- AdminTask::JobQueue
- AdminTask::NodeMonitor
- AdminTask::Topology
- AdminTask::PollerPerformance
- AdminTask::PseudoDevice
- AdminTask::SlowDevices
- AdminTask::UndiscoveredNeighbors
- AdminTask::OrphanedDevices
- AdminTask::DuplicateDevices
- AdminTask::TimedOutDevices
- AdminTask::UserLog
- AdminTask::Users
- Search::Device
- Search::Node
- Search::VLAN
- Search::Port
- Device::Details
- Device::Ports
- Device::Modules
- Device::Neighbors
- Device::Addresses
- Device::Vlans
extra_web_plugins: []
sidebar_defaults:
search_node:
stamps: { default: checked }
deviceports: { default: checked }
show_vendor: { default: null }
archived: { default: null }
partial: { default: null }
age_invert: { default: null }
daterange: { default: null }
mac_format: { default: IEEE }
search_port:
partial: { default: null }
uplink: { default: null }
ethernet: { default: checked }
search_device:
matchall: { default: checked }
device_ports:
c_admin: { label: 'Port Controls', default: null, idx: 0 }
c_port: { label: 'Port', default: checked, idx: 1 }
c_descr: { label: 'Description', default: null, idx: 2 }
c_comment: { label: 'Last Comment', default: null, idx: 3 }
c_type: { label: 'Type', default: null, idx: 4 }
c_duplex: { label: 'Duplex', default: null, idx: 5 }
c_lastchange: { label: 'Last Change', default: null, idx: 6 }
c_name: { label: 'Name', default: checked, idx: 7 }
c_speed: { label: 'Speed', default: null, idx: 8 }
c_error: { label: 'Error Message', default: null, idx: 9 }
c_mac: { label: 'Port MAC', default: null, idx: 10 }
c_mtu: { label: 'MTU', default: null, idx: 11 }
c_pvid: { label: 'Native VLAN', default: checked, idx: 12 }
c_vmember: { label: 'VLAN Membership', default: checked, idx: 13 }
c_power: { label: 'PoE', default: null, idx: 14 }
c_ssid: { label: 'SSID', default: null, idx: 15 }
c_nodes: { label: 'Connected Nodes', default: null, idx: 16 }
c_neighbors: { label: 'Connected Devices', default: checked, idx: 17 }
c_stp: { label: 'Spanning Tree', default: null, idx: 18 }
c_up: { label: 'Status', default: null, idx: 19 }
mac_format: { default: IEEE }
n_inventory: { label: 'Inventory Data', default: checked, idx: 0 }
n_detailed_inventory: { label: 'Detailed Inventory', default: null, idx: 1 }
n_age: { label: 'Age Stamp', default: null, idx: 2 }
n_ip4: { label: 'IPv4 Addresses', default: checked, idx: 3 }
n_ip6: { label: 'IPv6 Addresses', default: checked, idx: 4 }
n_netbios: { label: 'NetBIOS Name', default: checked, idx: 5 }
n_ssid: { label: 'SSID', default: checked, idx: 6 }
n_vendor: { label: 'Vendor', default: null, idx: 7 }
n_archived: { label: 'Archived Data', default: null, idx: 8 }
age_num: { default: 3 }
age_unit: { default: months }
device_netmap:
showips: { default: null }
showspeed: { default: null }
mapshow: { default: neighbors }
colorby: { default: speed }
dynamicsize: { default: checked }
report_moduleinventory:
fruonly: { default: checked }
matchall: { default: checked }
report_portutilization:
age_num: { default: 3 }
age_unit: { default: months }
device_port_col_idx_left: 0
device_port_col_idx_mid: 2
device_port_col_idx_right: -1
jobqueue_refresh: 10
safe_password_store: true
reports: []
system_reports:
- tag: portserrordisabled
label: 'Error Disabled Ports'
category: Port
columns:
- { ip: Device }
- { dns: DNS }
- { port: Port }
- { name: Description }
- { reason: Reason }
query: |
SELECT dp.ip, d.dns, dp.port, dp.name, properties.error_disable_cause AS reason
FROM device_port dp
INNER JOIN device_port_properties properties USING (ip, port)
LEFT JOIN device d USING (ip)
WHERE properties.error_disable_cause IS NOT NULL
ORDER BY dp.ip, dp.port
table_pagesize: 10
table_showrecordsmenu:
- [10, 25, 50, 100, '-1']
- [10, 25, 50, 100, 'All']
vlanctl: true
portctl_nameonly: false
portctl_nophones: false
portctl_vlans: false
portctl_uplinks: false
port_control_reasons:
address: 'Address Allocation Abuse'
copyright: 'Copyright Violation'
dos: 'Denial of Service'
bandwidth: 'Excessive Bandwidth'
polling: 'Excessive Polling of DNS/DHCP/SNMP'
noserv: 'Not In Service'
exploit: 'Remote Exploit Possible'
compromised: 'System Compromised'
other: 'Other'
resolved: 'Issue Resolved'
check_userlog: true
devport_vlan_limit: 150
login_logo: ""
defanged_admin: 'admin'
# -------------
# NETDISCO CORE
# -------------
# mibhome is discovered from environment
# mibdirs defaults to contents of mibhome
host_groups:
__ANY__:
- 'any'
__LOCAL_ADDRESSES__:
- '::1'
- 'fe80::/10'
- '127.0.0.0/8'
host_group_displaynames: {}
device_identity: []
community: []
community_rw: []
device_auth: []
use_legacy_sshcollector: false
get_credentials: ""
bulkwalk_off: false
bulkwalk_no: []
bulkwalk_repeaters: 20
nonincreasing: false
snmpver: 3
snmptimeout: 3000000
snmpretries: 2
snmp_remoteport: {}
devices_no: []
devices_only: []
discover_no: []
discover_only: []
discover_no_type: []
discover_waps: true
discover_phones: false
discover_min_age: 0
macsuck_no: []
macsuck_only: []
macsuck_all_vlans: false
macsuck_no_unnamed: false
macsuck_no_vlan:
- 'fddi-default'
- 'token-ring-default'
- 'fddinet-default'
- 'trnet-default'
- 'fcoe-vsan-4048'
- 'SAM-vlan-boot'
- 'SAM-vlan-appliance-management'
- 'SAM-vlan-management'
macsuck_no_devicevlan: []
macsuck_unsupported: []
macsuck_unsupported_type: []
macsuck_bleed: false
macsuck_min_age: 0
snmpforce_v1: []
snmpforce_v2: []
snmpforce_v3: []
arpnip_no: []
arpnip_only: []
arpnip_min_age: 0
nbtstat_no: []
nbtstat_only: []
nbtstat_max_age: 7
nbtstat_interval: 0.02
nbtstat_response_timeout: 1
node_freshness: 0
expire_devices: 60
expire_nodes: 90
expire_nodes_archive: 60
expire_jobs: 14
expire_userlog: 365
expire_nodeip_freshness: null
store_wireless_clients: true
store_modules: true
ignore_interfaces:
- 'EOBC'
- 'unrouted VLAN(?: \d+)?'
- 'StackPort'
- 'Control Plane Interface'
- 'SPAN (S|R)P Interface'
- 'StackSub-.*'
- 'StackPort\d+'
- 'netflow'
- 'Vlan\d+-mpls layer'
- 'BRI\S+-Bearer Channel'
- 'BRI\S+-Physical'
- 'BRI\S+-Signalling'
- 'BRI\S+-Signaling'
- 'Embedded-Service-Engine\d+\/\d+'
- 'Virtual-Template\d+'
- 'Virtual-Access\d+'
- '(E|T)\d \d\/\d\/\d'
- 'InLoopback0'
- 'NULL\d'
- 'Register-Tunnel\d'
- 'Blade-Aggregation\d'
- 'M-GigabitEthernet\d\/\d\/\d'
- 'Ethernet(?:-| )QOS Packet Schedu?ler'
- 'Ethernet(?:-| )WFP (?:802\.3|Native) MAC Layer Lightweight Filter'
- 'ii\d\/\d\/\d+'
ignore_notpresent_types:
- 'ethernetCsmacd'
- 'tunnel'
- 'ieee8023adLag'
ignore_private_nets: false
reverse_sysname: false
phone_capabilities:
- '(?i:phone)'
phone_platforms:
- '(?i:mitel.5\d{3})'
wap_capabilities:
- 'wlanAccessPoint'
wap_platforms:
- '(?i:\bw?ap\b)'
- 'cisco\s+AIR-[L|C]?AP'
- '-K9W8-'
# --------------
# BACKEND DAEMON
# --------------
workers:
tasks: 'AUTO * 2'
timeout: 600
sleep_time: 1
min_runtime: 0
max_deferrals: 10
retry_after: '7 days'
queue: PostgreSQL
# 50 minutes
jobs_stale_after: 3000
jobs_qdepth: 50
dns:
max_outstanding: 50
hosts_file: '/etc/hosts'
no: ['group:__LOCAL_ADDRESSES__','169.254.0.0/16']
schedule:
discoverall:
when: '5 7 * * *'
macwalk:
when:
min: 20
arpwalk:
when:
min: 50
nbtwalk:
when: '0 8,13,21 * * *'
expire:
when: '30 23 * * *'
job_prio:
high:
- location
- contact
- portcontrol
- portname
- vlan
- power
normal:
- discoverall
- discover
- arpwalk
- arpnip
- macwalk
- macsuck
- nbtwalk
- nbtstat
- expire
- stats
worker_plugins:
- 'Arpnip'
- 'Arpnip::Nodes'
- 'Arpnip::Subnets'
- 'Arpwalk'
- 'Contact'
- 'Delete'
- 'Discover'
- 'Discover::CanonicalIP'
- 'Discover::Entities'
- 'Discover::Neighbors'
- 'Discover::Neighbors::Routed'
- 'Discover::PortPower'
- 'Discover::PortProperties'
- 'Discover::Properties'
- 'Discover::VLANs'
- 'Discover::Wireless'
- 'Discover::WithNodes'
- 'DiscoverAll'
- 'DumpConfig'
- 'Expire'
- 'ExpireNodes'
- 'Graph'
- 'Location'
- 'Macsuck'
- 'Macsuck::Nodes'
- 'Macsuck::WirelessNodes'
- 'Macwalk'
- 'MakeRancidConf'
- 'NodeMonitor'
- 'Nbtstat'
- 'Nbtstat::Core'
- 'Nbtwalk'
- 'PortControl'
- 'PortName'
- 'Power'
- 'Psql'
- 'Renumber'
- 'Show'
- 'Stats'
- 'Vlan'
- 'Vlan::Core'
extra_worker_plugins: []
# - Discover::ConfigBackup::CLI
driver_priority:
restconf: 500
netconf: 400
eapi: 300
cli: 200
snmp: 100
# ---------------
# GraphViz Export
# ---------------
graph:
# ---- Graph Settings ----
edge_color : wheat
graph : 'graph/netmap.gif'
graph_png : 'graph/netmap.png'
graph_bg : black
graph_clusters : false # try fdp layout
graph_color : white
graph_default : png
#graph_dir : net_dir.gif
graph_epsilon : 6
graph_layout : twopi # try neato or fdp too
graph_map : 'graph/netmap.map'
graph_overlap : scale
graph_nodesep : 2
graph_ranksep : .3
graph_raw : 'graph/graph_raw.dot'
graph_splines : false
graph_svg : 'graph/netmap.svg'
graph_timeout : 90
graph_x : 30
graph_y : 30
node_fillcolor : dimgrey
node_font : lucon
node_fontsize : 46.0
node_fontcolor : white
node_problem : red
node_shape : box
node_style : filled
#edge_style : setlinewidth(10)
# ---- Node Maps ----
# variable:matching pattern:node attribute:attribute value:key:key name
#node_map:
# - 'label:cat(?!-g):fillcolor:blue:cat:Blue Box - Catalyst Device'
# - 'label:-g:fillcolor:darkgreen:dev-g:Green Box - Gateway / Router'
# - 'ip:^192.168\.:color:yellow:dev:Yellow Border - ResNet'
# ---------------
# DANCER INTERNAL
# ---------------
charset: 'UTF-8'
warnings: false
show_errors: false
logger: 'console'
engines:
netdisco_template_toolkit:
encoding: 'utf8'
start_tag: '[%'
end_tag: '%]'
PRE_CHOMP: 1
INCLUDE_PATH: []
layout: 'main'
plugins:
Auth::Extensible:
no_api_change_warning: true
no_default_pages: true
no_login_handler: true
realms:
users:
provider: 'App::Netdisco::Web::Auth::Provider::DBIC'
schema_name: 'netdisco'
session: 'cookie'
session_cookie_key: 'this_will_be_overridden_on_webapp_startup'
template: 'netdisco_template_toolkit'
route_cache: true
appname: 'Netdisco'
behind_proxy: false