def send_config_command(device, config_commands):
    net_connect = Netmiko(**device)
    net_connect.find_prompt()
    net_connect.config_mode(config_command='configure private')
    if net_connect.check_config_mode():
        for c in config_commands:
            output = net_connect.send_config_set(c, exit_config_mode=False)
            if 'syntax error' in output:
                print('''Command "{}" error!
{}
'''.format(c, output)[:-23])
                if exit_or_continue():
                    break
            elif 'missing argument' in output:
                print('''Command "{}" error!
{}
'''.format(c, output)[:-23])
                if exit_or_continue():
                    break
            elif 'invalid interface type in' in output:
                print('''Command "{}" error!
{}
'''.format(c, output)[:-23])
                if exit_or_continue():
                    break

        net_connect.send_config_set("show | compare", exit_config_mode=False)
        net_connect.commit(and_quit=True)
    
    net_connect.disconnect()
Exemple #2
0
def send_config_command(device, config_commands):
    net_connect = Netmiko(**device)
    output = net_connect.find_prompt()
    output += net_connect.config_mode(config_command='configure private')
    if net_connect.check_config_mode():
        output += net_connect.send_config_set(config_commands, exit_config_mode=False)
        output += net_connect.send_config_set("show | compare", exit_config_mode=False)
        output += net_connect.commit(and_quit=True)
        print(output)
    
    net_connect.disconnect()
from netmiko import Netmiko

connection_object = Netmiko(host='192.168.1.254',
                            username='******',
                            password='******',
                            device_type='cisco_asa',
                            secret="cisco")
#calling netmiko function, it has usual attributes and plust device_type attribute which tell on whcich vendor we would connect to.
output = connection_object.send_command('show version')
print(output)
promt_object = connection_object.find_prompt()
print(promt_object)
connection_object.config_mode()
promt_object = connection_object.find_prompt()
print(promt_object)
connection_object.send_command('username test1 password test privilege 15')
output = connection_object.send_command("show run user")
print(output)
connection_object.disconnect()
Exemple #4
0
#!/usr/bin/env python
from netmiko import Netmiko
from getpass import getpass

password = getpass()

cisco1 = {
    'host': 'cisco1.twb-tech.com',
    'username': '******',
    'password': password,
    'device_type': 'cisco_ios',
    'secret': password,
}

net_connect = Netmiko(**cisco1)
print(net_connect.find_prompt())
net_connect.send_command_timing("disable")
print(net_connect.find_prompt())
net_connect.enable()
print(net_connect.find_prompt())

# Go into config mode
net_connect.config_mode()
print(net_connect.find_prompt())
net_connect.exit_config_mode()
print(net_connect.find_prompt())
net_connect.disconnect()
Exemple #5
0
    "host": "cisco4.lasthop.io",
    "username": "******",
    "password": password,
    "secret": password,
    "device_type": "cisco_ios",
    "session_log": "my_output.txt",
}

# Establish SSH connection to the network device using **kwargs to pull in details from dictionary
net_connect = Netmiko(**device)

# Part a - find and print the prompt to the screen
print(net_connect.find_prompt())

# Part B - Enter config mode and find the prompt
print(net_connect.config_mode())
print(net_connect.find_prompt())

# Part C - exit config mode and print the prompt
print(net_connect.exit_config_mode())
print(net_connect.find_prompt())

# Part D - send disable down the SSH channel
print(net_connect.write_channel('disable\n'))

# Part E - Sleep for 2s and read back from SSH channel
time.sleep(2)
print(net_connect.read_channel())

# Part F - Go into enable mode and print prompt
print(net_connect.enable())
Exemple #6
0
'''
3. Find a command on your device that has additional prompting.
 Use send_command_timing to send the command down the SSH channel.
 Capture the output and handle the additional prompting.
'''
from netmiko import Netmiko
from getpass import getpass


command = 'no partition testP id 1'
password = getpass()
my_device = {
    'host': '10.128.64.69',
    'username': '******',
    'password': password,
    'device_type': 'a10'
}
dev_conn = Netmiko(**my_device)
dev_conn.config_mode()
print('Prompt for device {} is: {}'.format(my_device['host'],
                                           dev_conn.find_prompt()))
com_output = dev_conn.send_command_timing(command)
if 'Remove this partition' in com_output:
    com_output += dev_conn.send_command_timing('y\n')

print('*' * 80)
print('Output of "{}" command on "{}"'.format(command, my_device['host']))
print('*' * 80)
print('{}'.format(com_output))
print('*' * 80)
def gns3_send_start_config_telnet(gns3_server, project_id,
                                  gns3_code_topology_data,
                                  global_delay_factor):

    print("""
    ╔═╗┌┬┐┌─┐┌─┐  ╦╦  ╦  ┌─┐┌─┐┌┐┌┌┬┐  ┌─┐┌┬┐┌─┐┬─┐┌┬┐┬ ┬┌─┐  ┌─┐┌─┐┌┐┌┌─┐┬┌─┐
    ╚═╗ │ ├┤ ├─┘  ║╚╗╔╝  └─┐├┤ │││ ││  └─┐ │ ├─┤├┬┘ │ │ │├─┘  │  │ ││││├┤ ││ ┬
    ╚═╝ ┴ └─┘┴    ╩ ╚╝.  └─┘└─┘┘└┘─┴┘  └─┘ ┴ ┴ ┴┴└─ ┴ └─┘┴    └─┘└─┘┘└┘└  ┴└─┘.
    """)

    gns3_host_ip = gns3_code_topology_data['gns3_host_ip']
    START_CFGS_PATH = gns3_code_topology_data['START_CFGS_PATH']

    list_start_config_nodes = []

    for node in gns3_code_topology_data['gns3_startup_config_telnet']:
        name = node['name']
        list_start_config_nodes.append(name)

    for node_name in list_start_config_nodes:
        print()
        print(
            'Applying startup config to', node_name + ' from',
            '[' + gns3_code_topology_data['START_CFGS_PATH'] + node_name + ']')
        print()

        r_get_nodes = requests.get(gns3_server + '/v2/projects/' +
                                   str(project_id) + '/nodes')
        r_get_nodes_dict = r_get_nodes.json()

        for dictionary_node in r_get_nodes_dict:
            if dictionary_node['name'] == node_name:
                # For VPCS
                if dictionary_node['node_type'] == 'vpcs':
                    device_type = 'generic_termserver_telnet'

                    config_path = os.path.abspath(START_CFGS_PATH + node_name)
                    telnet_port = dictionary_node['console']

                    device = {
                        "host": gns3_host_ip,
                        "device_type": device_type,
                        "port": telnet_port,
                        "global_delay_factor": global_delay_factor
                    }

                    net_connect = Netmiko(**device)
                    net_connect.send_config_from_file(config_file=config_path,
                                                      exit_config_mode=False)
                    net_connect.disconnect()
                    continue
                # For VyOS.
                elif dictionary_node['port_name_format'] == 'eth{0}':
                    device_type = 'generic_termserver_telnet'

                    config_path = os.path.abspath(START_CFGS_PATH + node_name)
                    telnet_port = dictionary_node['console']

                    device = {
                        "host": gns3_host_ip,
                        "device_type": device_type,
                        "port": telnet_port,
                        "global_delay_factor": global_delay_factor
                    }

                    vyos = pexpect.spawn('telnet ' + gns3_host_ip + ' ' +
                                         str(telnet_port))
                    vyos.expect('')
                    vyos.sendline('\n')
                    vyos.expect('login: '******'vyos\n')
                    vyos.expect('Password:'******'vyos')

                    net_connect = Netmiko(**device)
                    net_connect.send_config_from_file(config_file=config_path,
                                                      exit_config_mode=False)
                    net_connect.disconnect()
                    continue
                # For JunOS.
                elif dictionary_node['port_name_format'] == 'ge-0/0/{0}':
                    device_type = 'juniper_junos_telnet'

                    config_path = os.path.abspath(START_CFGS_PATH + node_name)
                    telnet_port = dictionary_node['console']

                    device = {
                        "host": gns3_host_ip,
                        "device_type": device_type,
                        "port": telnet_port,
                        "global_delay_factor": global_delay_factor
                    }

                    juniper = pexpect.spawn('telnet ' + gns3_host_ip + ' ' +
                                            str(telnet_port))
                    juniper.expect('')
                    juniper.sendline('\n')
                    juniper.expect('login: '******'root\n')
                    juniper.expect('')
                    juniper.sendline('\n')
                    juniper.expect('root@% ', timeout=120)
                    juniper.sendline('cli')

                    with open(config_path) as f:
                        lines = f.read().splitlines()

                    net_connect = Netmiko(**device)
                    net_connect.config_mode()

                    for line in lines:
                        net_connect.send_command_timing(line)
                        time.sleep(1)
                    net_connect.disconnect()
                    continue
                # For Cisco IOS and Cisco ASA.
                else:
                    device_type = 'cisco_ios_telnet'

                    config_path = os.path.abspath(START_CFGS_PATH + node_name)
                    telnet_port = dictionary_node['console']

                    device = {
                        "host": gns3_host_ip,
                        "device_type": device_type,
                        "port": telnet_port,
                        "global_delay_factor": global_delay_factor
                    }

                    net_connect = Netmiko(**device)
                    net_connect.enable()
                    net_connect.send_config_from_file(config_file=config_path)
                    net_connect.disconnect()
                    continue
        print('Success -', node_name)
    print('=' * 100)
Exemple #8
0
print("This account will be used to login to Panorama, and firewalls")
user = input("Enter your service account: ")

#password = getpass.getpass("Password: "******"Would you like to run any additional commands? If so enter now:")

mydevice = {
    "host": hostname,
    "username": user,
    "password": getpass(),
    "device_type": "paloalto_panos",
}

net_connect = Netmiko(**mydevice)
command = "set cli config-output-format set"
command1 = "set cli pager off"
command2 = "configure"
command3 = "show"
print()
print(net_connect.find_prompt())
output0 = net_connect.send_command(command)
output1 = net_connect.send_command(command1)
output2 = net_connect.config_mode(command2)
output3 = net_connect.send_command(command3)
net_connect.disconnect()
print(output3)
print()
Exemple #9
0
import time

password = getpass()
device = {
    "host": "cisco4.lasthop.io",
    "username": "******",
    "password": password,
    "secret": password,
    "device_type": "cisco_ios",
    "session_log": "my_output_l2-ex6.txt",
}

net_connection = Netmiko(**device)
print(net_connection.find_prompt())

net_connection.config_mode()
print(net_connection.find_prompt())
net_connection.exit_config_mode()
print(net_connection.find_prompt())

net_connection.write_channel("disable\n")
time.sleep(2)
output = net_connection.read_channel()
print(output)

print("Enter enable mode")
net_connection.enable()
print(net_connection.find_prompt())

net_connection.disconnect()
print()
Exemple #10
0
    'port':'22',
    'secret':'cisco'
}

from netmiko import Netmiko

connection = Netmiko(**cisco_device)
output = connection.send_command('show ip int brief')

#Check if enable mode and enter enable mode if not
prompt=  (connection.find_prompt())
print (prompt)

if '>' in prompt:
    connection.enable()

print (connection.find_prompt())

 #Entered the enable mode
output = connection.send_command('show run')
print (output)



print (connection.check_config_mode())
if not connection.check_config_mode():
    connection.config_mode()
print('Switched to config mode')
print (connection.check_config_mode())

connection.disconnect()
Exemple #11
0
    'password': password,
    'device_type': 'cisco_xe',
    'session_log': 'my_output.txt',
    'fast_cli': True,
    'secret': password
}

ssh_conn = Netmiko(**devices)
print("-" * 79)
print("Execution of the command prompt :")
print("-" * 79)
print(ssh_conn.find_prompt())
print("-" * 79)
print("Execution the config_mode:")
print("-" * 79)
ssh_conn.config_mode()
print(ssh_conn.find_prompt())
print("-" * 79)
print("Execution the exit_config_mode:")
print("-" * 79)
ssh_conn.exit_config_mode()
print(ssh_conn.find_prompt())
print("-" * 79)
print("Execution the write_channel:")
print("-" * 79)
ssh_conn.write_channel('disable')
print(ssh_conn.find_prompt())
print("-" * 79)
print("Execution the time sleep command:")
time.sleep(2)
print("-" * 79)