Giter Club home page Giter Club logo

netdisco_discover_hook's Introduction

Netdisco discover_hook

This is a Netdisco hook that can suppress the is_uplink detection of interfaces, based on attributes in device_port. It's tied deeply enough into Netdisco to use database parameters and settings from deployment.yml.

See https://github.com/netdisco/netdisco/wiki/Hooks for more information about Hooks in general.

To run this hook after a device is discovered, put the following into deployment.yml

hooks:
  - type: 'exec'
    event: 'discover'
    with:
      cmd: '/home/netdisco/perl5/bin/discover_hook [% ip %]'

To configure the interfaces that should not be uplinks, add a section like this in deployment.yml. The supplied fields are matched as regex against the columns in device_port, ie. the second example will turn into update device_port set is_uplink = false where remote_type ~* 'proliant' and remote_port ~* 'ALOM' and ip = 'discovered_device_ip'. Any number of columns from device_port can be added.

discover_hook:
    no_uplink_port:
        # HP blades typically host a bunch of VMs which we want to show up as nodes
        - remote_type: HP VC FlexFabric
        # Typical node that happens to speak some LLDP and is thus wrongly considered an undiscovered neighbor device
        - remote_type: proliant
          remote_port: ALOM

To see what's going on in the hooks queue, use e.g.

$ netdisco-do psql
netdisco=> select *  from admin where action ~* 'hook:' order by entered desc limit 5;

netdisco_discover_hook's People

Contributors

rc9000 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

netdisco_discover_hook's Issues

Hook execution error

Hi,
I have set up netdisco in order to use discover_hook and remove uplinks on ip phones and APs:

  • discover_hook in /home/netdisco/perl5 with 755 permissions
  • this paragraph in deployment.yml:
hooks:
  - type: 'exec'
    event: 'discover'
    with:
      cmd: '/home/netdisco/perl5/bin/discover_hook [% ip %]'
discover_hook:
  no_uplink_port:
    # ip phones
    - remote_type: Cisco IP Phone
    - remote_type: cisco AIR

, I'm getting this error for the execution of the hook (got by selecting the admin table as proposed):

{"result":256,"timeout":0,"pid":56965,"stderr":"[56965] 2022-05-05 06:54:51 error Usage: /home/netdisco/perl5/bin/discover_hook <ip>\n","cmd":"/home/netdisco/perl5/bin/discover_hook ","stdout":""}

, so it looks like netdisco is not passing the IP of the device to the hook script. Do you know how to solve this issue? Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.