java中的接口是类吗
773
2022-09-12
NETCONF配置CISCO XE(csr1000v)初体验(NETCONF协议)
1、有用的链接
Model Driven Network Automation with IOS-XE
NETCONF/YANG and Validate Example for Cisco IOS XE 16.x Platforms
Configuration Guide, Cisco IOS XE Everest 16.6.x
2.7
pip软件管理器
浏览器带flash plugin(推荐chrome)
//pip install --upgrade pip
//yum install python-virtualenv
//yum install graphviz
a、更改pip源
mkdir ~/.pip
vi ~/.pip/pip.conf
[global]
index-url = = mirrors.aliyun.com
yum install python2-pip python-virtualenv graphviz -y
依赖组件:
yum install libxml2-devel libxslt-devel python-devel zlib-devel gcc git -y
git clone yang-explorer/
bash setup.sh
省略。。。。。。。
Successfully built ydk-models-cisco-ios-xr
Installing collected packages: ydk-models-cisco-ios-xr
Successfully installed ydk-models-cisco-ios-xr-6.2.1
Installing dependencies .. done
Setting up initial database ..
Warning: Setting up database as root, this is not recommended.
Alternatively you can re-run this script as non-root
to setup database without root privilege.
Do you want to continue as root ? (n/N) y //初始化数据库
Creating data directories ..
Creating database ..
Operations to perform:
Synchronize unmigrated apps: staticfiles, messages, explorer
Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Creating table explorer_collection
Creating table explorer_userprofile
Creating table explorer_deviceprofile
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying sessions.0001_initial... OK
Creating default users ..
Copying default models ..
Setup completed..
Use start.sh to start yang-explorer server
安装完成。
c、修改配置文件并运行yang-exporer
[root@desk yang-explorer]# cd server/static/
[root@desk static]# vi YangExplorer.html
var swfVersionStr = "16.0.0";
// To use express install, set to playerProductInstall.swf, otherwise the empty string.
var xiSwfUrlStr = "expressInstall.swf";
var flashvars = {};
flashvars.host = '192.168.0.87'; //修改监听地址和端口
flashvars.port = '8088';
[root@desk static]# cd ..
[root@desk server]# cd ..
[root@desk yang-explorer]# vi start.sh
#!/usr/bin/env bash
HOST='192.168.0.87'
PORT='8088'
# set timeout value for ncclient
export NCCLIENT_TIMEOUT=90
[root@desk yang-explorer]# ls
default-models docs env.sh LICENSE README.md requirements.txt server setup.sh start.sh v YangExplorer
[root@desk yang-explorer]# ./start.sh
Activating virtualenv ..
Starting YangExplorer server ..
Use system checks...
System check identified no issues (0 silenced).
July 17, 2019 - 15:22:46
Django version 1.8.3, using settings 'server.settings'
Starting development server at the server with CONTROL-C.
打开浏览器:
//主要配置
Cisco-IOS-XE-native----->native --->interface --->GigabitEthernet name
ip---->address-choice
检查
XE3#sh ip inter b
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 192.168.0.29 YES DHCP up up
GigabitEthernet2 10.1.1.1 YES other administratively down down
GigabitEthernet3 unassigned YES unset administratively down down
XE3#sh ip inter b
Interface IP-Address OK? Method Status Protocol
GigabitEthernet1 192.168.0.29 YES DHCP up up
GigabitEthernet2 10.1.1.1 YES other up up
GigabitEthernet3 unassigned YES unset administratively down down
产生python文件:
"""
Netconf python example by yang-explorer (python dependencies:
> pip install lxml ncclient
Running script: (save as example.py)
> python example.py -a 192.168.0.29 -u yoyoo -p yoyoo123 --port 830 //执行python的方法
"""
import lxml.etree as ET
from argparse import ArgumentParser
from ncclient import manager
from ncclient.operations import RPCError
payload = """
parser.add_argument('-u', '--username', type=str, required=True, help="Device Username (netconf agent username)") parser.add_argument('-p', '--password', type=str, required=True, help="Device Password (netconf agent password)") parser.add_argument('--port', type=int, default=830, help="Netconf agent port") args = parser.parse_args() # connect to netconf agent with manager.connect(host=args.host, port=args.port, username=args.username, password=args.password, timeout=90, hostkey_verify=False, device_params={'name': 'csr'}) as m: # execute netconf operation try: response = m.edit_config(target='running', config=payload).xml data = ET.fromstring(response) except RPCError as e: data = e._raw # beautify output print(ET.tostring(data, pretty_print=True))
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~