Skip to content

CLI and LIB for scripting network devices via Oxidized

Notifications You must be signed in to change notification settings

nertwork/oxidized-script

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oxidized Script

CLI and Library to interface with network devices in Oxidized

Install

% gem install oxidized-script

Use

CLI

[fisakytt@lan-login1 ~]% oxs S-2250220 'sh ver'
                Jan 29 2010 12:18:24
                K.14.54
                79
[fisakytt@lan-login1 ~]% cat > cmds
show ip route
[fisakytt@lan-login1 ~]% oxs -x cmds 62.236.123.199
Default gateway is 62.236.123.198

Host               Gateway           Last Use    Total Uses  Interface
ICMP redirect cache is empty
[fisakytt@lan-login1 ~]% cat >> cmds
sh ip cef
[fisakytt@lan-login1 ~]% cat cmds|oxs -x- 62.236.123.199
Default gateway is 62.236.123.198

Host               Gateway           Last Use    Total Uses  Interface
ICMP redirect cache is empty
%IPv4 CEF not running

[nertwork@lan-login2 ~]% oxs --verbose --group ios --threads 4 --regex ^test 'show vrf'
running list for hosts in group: ios and matching: ^test
## HOST - test-node-1
## OXS - show vrf
Name                             Default RD          Protocols   Interfaces
  mgmtVRF                          <not set>           ipv4,ipv6   Fa1

[fisakytt@lan-login1 ~]% oxs --help
Usage: oxs [options] hostname [command]
    -m, --model            host model (ios, junos, etc), otherwise discovered from Oxidized source
    -o, --ostype           OS Type (ios, junos, etc)
    -x, --commands         commands file to be sent
    -u, --username         username to use
    -p, --password         password to use
    -t, --timeout          timeout value to use
    -e, --enable           enable password to use
    -c, --community        snmp community to use for discovery
    -g, --group            group to run commands on (ios, junos, etc), specified in oxidized db
    -r, --threads          specify ammount of threads to use for running group (default: 1)
        --regex            run on all hosts that match the regexp
        --dryrun           do a dry run on either groups or regexp to find matching hosts
        --protocols        protocols to use, default "ssh, telnet"
    -v, --verbose          verbose output, e.g. show commands sent
    -d, --debug            turn on debugging
        --terse            display clean output
        --list-models      list supported models
        --list-nodes       list nodes in oxidized source
    -h, --help             Display this help message.
[fisakytt@lan-login1 ~]% 


Library

[fisakytt@lan-login1 ~]% cat moi42.b 
#!/usr/bin/env ruby

require 'oxidized/script'

Oxidized::Config.load
Oxidized.setup_logger

Oxidized::Script.new(:host=>'62.236.123.199') do |oxs|
  puts oxs.cmd 'show mac address-table dynamic vlan 101'
end
[fisakytt@lan-login1 ~]% ./moi42.b 
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
 101    44d3.ca4c.383e    DYNAMIC     Gi0/1
[fisakytt@lan-login1 ~]% 

TODO

  • Interactive use?
  • Tests+docs, as always :(

About

CLI and LIB for scripting network devices via Oxidized

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%