This repository has been archived by the owner on Oct 11, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
How to use NAPALM with CLI
Khelil Sator edited this page Oct 22, 2017
·
1 revision
To get the help, run this command:
napalm --help
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.177.170 call get_facts
{
"os_version": "17.2R1.13",
"uptime": 1883340,
"interface_list": [
"lc-0/0/0",
"pfe-0/0/0",
"pfh-0/0/0",
"xe-0/0/0",
"xe-0/0/1",
"xe-0/0/2",
"xe-0/0/3",
"ge-1/0/0",
"ge-1/0/1",
"ge-1/0/2",
"ge-1/0/3",
"ge-1/0/4",
"ge-1/0/5",
"ge-1/0/6",
"ge-1/0/7",
"ge-1/0/8",
"ge-1/0/9",
"ge-1/0/10",
"ge-1/0/11",
"ge-1/1/0",
"ge-1/1/1",
"ge-1/1/2",
"ge-1/1/3",
"ge-1/1/4",
"ge-1/1/5",
"ge-1/1/6",
"ge-1/1/7",
"ge-1/1/8",
"ge-1/1/9",
"ge-1/1/10",
"ge-1/1/11",
"ge-1/2/0",
"ge-1/2/1",
"ge-1/2/2",
"ge-1/2/3",
"ge-1/2/4",
"ge-1/2/5",
"ge-1/2/6",
"ge-1/2/7",
"ge-1/2/8",
"ge-1/2/9",
"ge-1/2/10",
"ge-1/2/11",
"ge-1/3/0",
"ge-1/3/1",
"ge-1/3/2",
"ge-1/3/3",
"ge-1/3/4",
"ge-1/3/5",
"ge-1/3/6",
"ge-1/3/7",
"ge-1/3/8",
"ge-1/3/9",
"ge-1/3/10",
"ge-1/3/11",
".local.",
"cbp0",
"demux0",
"dsc",
"em0",
"em1",
"esi",
"fxp0",
"gre",
"ipip",
"irb",
"jsrv",
"lo0",
"lsi",
"me0",
"mtun",
"pimd",
"pime",
"pip0",
"pp0",
"rbeb",
"tap",
"vtep"
],
"vendor": "Juniper",
"serial_number": "E3061",
"model": "MX80-48T",
"hostname": "mx80-17",
"fqdn": "mx80-17.poc-nl.jnpr.net"
}
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.177.170 call get_bgp_config
{
"IBGP": {
"neighbors": {
"192.181.0.28": {
"export_policy": "",
"remote_as": 100,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
},
"192.181.0.25": {
"export_policy": "",
"remote_as": 0,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
},
"192.177.0.147": {
"export_policy": "",
"remote_as": 100,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
},
"192.181.0.27": {
"export_policy": "",
"remote_as": 100,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
}
},
"export_policy": "",
"remote_as": 0,
"description": "",
"prefix_limit": {},
"local_as": 0,
"multihop_ttl": 0,
"apply_groups": [],
"local_address": "192.177.0.170",
"remove_private_as": false,
"multipath": false,
"type": "internal",
"import_policy": ""
}
}
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.177.170 call get_bgp_neighbors
{
"global": {
"router_id": "",
"peers": {
"192.181.0.28": {
"is_enabled": true,
"uptime": 1120757,
"remote_as": 100,
"address_family": {
"ipv4": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
},
"ipv6": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
}
},
"remote_id": "",
"local_as": 100,
"is_up": false,
"description": ""
},
"192.181.0.25": {
"is_enabled": true,
"uptime": 1120769,
"remote_as": 100,
"address_family": {
"ipv4": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
},
"ipv6": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
}
},
"remote_id": "",
"local_as": 100,
"is_up": false,
"description": ""
},
"192.177.0.147": {
"is_enabled": true,
"uptime": 1120770,
"remote_as": 100,
"address_family": {
"ipv4": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
},
"ipv6": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
}
},
"remote_id": "",
"local_as": 100,
"is_up": false,
"description": ""
},
"192.181.0.27": {
"is_enabled": true,
"uptime": 1120772,
"remote_as": 100,
"address_family": {
"ipv4": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
},
"ipv6": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
}
},
"remote_id": "",
"local_as": 100,
"is_up": false,
"description": ""
}
}
}
}
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.177.170 call cli --method-kwargs "commands=['show version']"
{
"show version": "\nHostname: mx80-17\nModel: mx80-48t\nJunos: 17.2R1.13\nJUNOS Base OS boot [17.2R1.13]\nJUNOS Base OS Software Suite [17.2R1.13]\nJUNOS Crypto Software Suite [17.2R1.13]\nJUNOS Packet Forwarding Engine Support (MX80) [17.2R1.13]\nJUNOS Web Management [17.2R1.13]\nJUNOS Online Documentation [17.2R1.13]\nJUNOS SDN Software Suite [17.2R1.13]\nJUNOS Services Application Level Gateways [17.2R1.13]\nJUNOS Services Jflow Container package [17.2R1.13]\nJUNOS Services Stateful Firewall [17.2R1.13]\nJUNOS Services NAT [17.2R1.13]\nJUNOS Services RPM [17.2R1.13]\nJUNOS Services Captive Portal and Content Delivery Container package [17.2R1.13]\nJUNOS Macsec Software Suite [17.2R1.13]\nJUNOS Services Crypto [17.2R1.13]\nJUNOS Services IPSec [17.2R1.13]\nJUNOS DP Crypto Software Software Suite [17.2R1.13]\nJUNOS py-base-powerpc [17.2R1.13]\nJUNOS py-extensions-powerpc [17.2R1.13]\nJUNOS jsd [powerpc-17.2R1.13-jet-1]\nJUNOS Kernel Software Suite [17.2R1.13]\nJUNOS Routing Software Suite [17.2R1.13]\n"
}
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.179.95 call get_bgp_config
{
"underlay": {
"neighbors": {
"192.168.0.0": {
"export_policy": "",
"remote_as": 104,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
}
},
"export_policy": "bgp-out",
"remote_as": 0,
"description": "",
"prefix_limit": {},
"local_as": 109,
"multihop_ttl": 0,
"apply_groups": [],
"local_address": "",
"remove_private_as": false,
"multipath": true,
"type": "external",
"import_policy": "bgp-in"
}
}
dry run:
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.179.95 configure bgp_config.txt --strategy merge --dry-run
[edit protocols bgp group underlay]
neighbor 192.168.0.0 { ... }
+ neighbor 192.168.0.4 {
+ peer-as 110;
+ }
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.179.95 call get_bgp_config
{
"underlay": {
"neighbors": {
"192.168.0.0": {
"export_policy": "",
"remote_as": 104,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
}
},
"export_policy": "bgp-out",
"remote_as": 0,
"description": "",
"prefix_limit": {},
"local_as": 109,
"multihop_ttl": 0,
"apply_groups": [],
"local_address": "",
"remove_private_as": false,
"multipath": true,
"type": "external",
"import_policy": "bgp-in"
}
}
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.179.95 configure bgp_config.txt --strategy merge
[edit protocols bgp group underlay]
neighbor 192.168.0.0 { ... }
+ neighbor 192.168.0.4 {
+ peer-as 110;
+ }
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.179.95 call get_bgp_config
{
"underlay": {
"neighbors": {
"192.168.0.0": {
"export_policy": "",
"remote_as": 104,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
},
"192.168.0.4": {
"export_policy": "",
"remote_as": 110,
"route_reflector_client": false,
"prefix_limit": {},
"local_as": 0,
"nhs": false,
"import_policy": "",
"local_address": "",
"authentication_key": "",
"description": ""
}
},
"export_policy": "bgp-out",
"remote_as": 0,
"description": "",
"prefix_limit": {},
"local_as": 109,
"multihop_ttl": 0,
"apply_groups": [],
"local_address": "",
"remove_private_as": false,
"multipath": true,
"type": "external",
"import_policy": "bgp-in"
}
}
# napalm --user pytraining --password Poclab123 --vendor junos 172.30.179.95 call get_bgp_neighbors
{
"global": {
"router_id": "192.179.0.95",
"peers": {
"192.168.0.0": {
"is_enabled": true,
"uptime": 4559588,
"remote_as": 104,
"address_family": {
"ipv4": {
"sent_prefixes": 5,
"accepted_prefixes": 5,
"received_prefixes": 5
},
"ipv6": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
}
},
"remote_id": "192.179.0.74",
"local_as": 109,
"is_up": true,
"description": ""
},
"192.168.0.4": {
"is_enabled": true,
"uptime": 16,
"remote_as": 110,
"address_family": {
"ipv4": {
"sent_prefixes": 6,
"accepted_prefixes": 6,
"received_prefixes": 6
},
"ipv6": {
"sent_prefixes": -1,
"accepted_prefixes": -1,
"received_prefixes": -1
}
},
"remote_id": "192.179.0.73",
"local_as": 109,
"is_up": true,
"description": ""
}
}
}
}
# napalm --debug --user pytraining --password Poclab123 --vendor junos 172.30.177.170 call cli --method-kwargs "commands=['show version']"
2017-10-10 09:50:15,573 - napalm - DEBUG - Starting napalm's debugging tool
2017-10-10 09:50:15,573 - napalm - DEBUG - Gathering napalm packages
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-base==0.25.0
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-eos==0.6.1
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-fortios==0.4.0
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-ios==0.8.0
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-iosxr==0.5.4
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-junos==0.12.0
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-nxos==0.7.0
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-panos==0.4.0
2017-10-10 09:50:15,598 - napalm - DEBUG - napalm-pluribus==0.5.1
2017-10-10 09:50:15,599 - napalm - DEBUG - napalm-ros==0.2.2
2017-10-10 09:50:15,599 - napalm - DEBUG - napalm-vyos==0.1.3
2017-10-10 09:50:15,599 - napalm - DEBUG - napalm-yang==0.0.7
2017-10-10 09:50:15,599 - napalm - DEBUG - napalm==1.2.0
2017-10-10 09:50:15,599 - napalm - DEBUG - get_network_driver - Calling with args: ('junos',), {}
2017-10-10 09:50:15,791 - napalm - DEBUG - get_network_driver - Successful
2017-10-10 09:50:15,791 - napalm - DEBUG - __init__ - Calling with args: (<class 'napalm_junos.junos.JunOSDriver'>, '172.30.177.170', 'pytraining'), {'password': u'*******', 'optional_args': {}, 'timeout': 60}
2017-10-10 09:50:15,791 - napalm - DEBUG - __init__ - Successful
2017-10-10 09:50:15,791 - napalm - DEBUG - pre_connection_tests - Calling with args: (<napalm_junos.junos.JunOSDriver object at 0x7fc7d7523e50>,), {}
2017-10-10 09:50:15,792 - napalm - DEBUG - open - Calling with args: (<napalm_junos.junos.JunOSDriver object at 0x7fc7d7523e50>,), {}
2017-10-10 09:50:17,637 - napalm - DEBUG - open - Successful
2017-10-10 09:50:17,637 - napalm - DEBUG - connection_tests - Calling with args: (<napalm_junos.junos.JunOSDriver object at 0x7fc7d7523e50>,), {}
2017-10-10 09:50:17,637 - napalm - DEBUG - get_facts - Calling with args: (<napalm_junos.junos.JunOSDriver object at 0x7fc7d7523e50>,), {}
2017-10-10 09:50:22,027 - napalm - DEBUG - Gathered facts:
{
"os_version": "17.2R1.13",
"uptime": 1883760,
"interface_list": [
"lc-0/0/0",
"pfe-0/0/0",
"pfh-0/0/0",
"xe-0/0/0",
"xe-0/0/1",
"xe-0/0/2",
"xe-0/0/3",
"ge-1/0/0",
"ge-1/0/1",
"ge-1/0/2",
"ge-1/0/3",
"ge-1/0/4",
"ge-1/0/5",
"ge-1/0/6",
"ge-1/0/7",
"ge-1/0/8",
"ge-1/0/9",
"ge-1/0/10",
"ge-1/0/11",
"ge-1/1/0",
"ge-1/1/1",
"ge-1/1/2",
"ge-1/1/3",
"ge-1/1/4",
"ge-1/1/5",
"ge-1/1/6",
"ge-1/1/7",
"ge-1/1/8",
"ge-1/1/9",
"ge-1/1/10",
"ge-1/1/11",
"ge-1/2/0",
"ge-1/2/1",
"ge-1/2/2",
"ge-1/2/3",
"ge-1/2/4",
"ge-1/2/5",
"ge-1/2/6",
"ge-1/2/7",
"ge-1/2/8",
"ge-1/2/9",
"ge-1/2/10",
"ge-1/2/11",
"ge-1/3/0",
"ge-1/3/1",
"ge-1/3/2",
"ge-1/3/3",
"ge-1/3/4",
"ge-1/3/5",
"ge-1/3/6",
"ge-1/3/7",
"ge-1/3/8",
"ge-1/3/9",
"ge-1/3/10",
"ge-1/3/11",
".local.",
"cbp0",
"demux0",
"dsc",
"em0",
"em1",
"esi",
"fxp0",
"gre",
"ipip",
"irb",
"jsrv",
"lo0",
"lsi",
"me0",
"mtun",
"pimd",
"pime",
"pip0",
"pp0",
"rbeb",
"tap",
"vtep"
],
"vendor": "Juniper",
"serial_number": "E3061",
"model": "MX80-48T",
"hostname": "mx80-17",
"fqdn": "mx80-17.poc-nl.jnpr.net"
}
{
"os_version": "17.2R1.13",
"uptime": 1883760,
"interface_list": [
"lc-0/0/0",
"pfe-0/0/0",
"pfh-0/0/0",
"xe-0/0/0",
"xe-0/0/1",
"xe-0/0/2",
"xe-0/0/3",
"ge-1/0/0",
"ge-1/0/1",
"ge-1/0/2",
"ge-1/0/3",
"ge-1/0/4",
"ge-1/0/5",
"ge-1/0/6",
"ge-1/0/7",
"ge-1/0/8",
"ge-1/0/9",
"ge-1/0/10",
"ge-1/0/11",
"ge-1/1/0",
"ge-1/1/1",
"ge-1/1/2",
"ge-1/1/3",
"ge-1/1/4",
"ge-1/1/5",
"ge-1/1/6",
"ge-1/1/7",
"ge-1/1/8",
"ge-1/1/9",
"ge-1/1/10",
"ge-1/1/11",
"ge-1/2/0",
"ge-1/2/1",
"ge-1/2/2",
"ge-1/2/3",
"ge-1/2/4",
"ge-1/2/5",
"ge-1/2/6",
"ge-1/2/7",
"ge-1/2/8",
"ge-1/2/9",
"ge-1/2/10",
"ge-1/2/11",
"ge-1/3/0",
"ge-1/3/1",
"ge-1/3/2",
"ge-1/3/3",
"ge-1/3/4",
"ge-1/3/5",
"ge-1/3/6",
"ge-1/3/7",
"ge-1/3/8",
"ge-1/3/9",
"ge-1/3/10",
"ge-1/3/11",
".local.",
"cbp0",
"demux0",
"dsc",
"em0",
"em1",
"esi",
"fxp0",
"gre",
"ipip",
"irb",
"jsrv",
"lo0",
"lsi",
"me0",
"mtun",
"pimd",
"pime",
"pip0",
"pp0",
"rbeb",
"tap",
"vtep"
],
"vendor": "Juniper",
"serial_number": "E3061",
"model": "MX80-48T",
"hostname": "mx80-17",
"fqdn": "mx80-17.poc-nl.jnpr.net"
}
2017-10-10 09:50:22,029 - napalm - DEBUG - get_facts - Successful
2017-10-10 09:50:22,030 - napalm - DEBUG - method - Calling with args: (<napalm_junos.junos.JunOSDriver object at 0x7fc7d7523e50>, 'cli'), {u'commands': ['show version']}
2017-10-10 09:50:22,030 - napalm - DEBUG - cli - Attempting to resolve method
2017-10-10 09:50:22,030 - napalm - DEBUG - cli - Attempting to call method with kwargs: {u'commands': ['show version']}
2017-10-10 09:50:23,110 - napalm - DEBUG - cli - Response
{
"show version": "\nHostname: mx80-17\nModel: mx80-48t\nJunos: 17.2R1.13\nJUNOS Base OS boot [17.2R1.13]\nJUNOS Base OS Software Suite [17.2R1.13]\nJUNOS Crypto Software Suite [17.2R1.13]\nJUNOS Packet Forwarding Engine Support (MX80) [17.2R1.13]\nJUNOS Web Management [17.2R1.13]\nJUNOS Online Documentation [17.2R1.13]\nJUNOS SDN Software Suite [17.2R1.13]\nJUNOS Services Application Level Gateways [17.2R1.13]\nJUNOS Services Jflow Container package [17.2R1.13]\nJUNOS Services Stateful Firewall [17.2R1.13]\nJUNOS Services NAT [17.2R1.13]\nJUNOS Services RPM [17.2R1.13]\nJUNOS Services Captive Portal and Content Delivery Container package [17.2R1.13]\nJUNOS Macsec Software Suite [17.2R1.13]\nJUNOS Services Crypto [17.2R1.13]\nJUNOS Services IPSec [17.2R1.13]\nJUNOS DP Crypto Software Software Suite [17.2R1.13]\nJUNOS py-base-powerpc [17.2R1.13]\nJUNOS py-extensions-powerpc [17.2R1.13]\nJUNOS jsd [powerpc-17.2R1.13-jet-1]\nJUNOS Kernel Software Suite [17.2R1.13]\nJUNOS Routing Software Suite [17.2R1.13]\n"
}
2017-10-10 09:50:23,111 - napalm - DEBUG - method - Successful
2017-10-10 09:50:23,111 - napalm - DEBUG - close - Calling with args: (<napalm_junos.junos.JunOSDriver object at 0x7fc7d7523e50>,), {}
2017-10-10 09:50:23,247 - napalm - DEBUG - close - Successful
2017-10-10 09:50:23,247 - napalm - DEBUG - post_connection_tests - Calling with args: (<napalm_junos.junos.JunOSDriver object at 0x7fc7d7523e50>,), {}