分享

sysrepo介绍

 raymoon_sure 2018-07-04

http://blog.sina.com.cn/s/blog_a6e8043c0102xzqe.html
1.sysrepo是干什么的
sysrepo是一个数据库。可以用来保存可读可写的配置,例如IP,netmask。你可以坐在家里,给远端的设备的sysrepo下修改配置命令。
另外远端设备还有一些只读的状态,也可以读回来,例如温度。
2.sysrepo的订阅功能
订阅实际上就是回调函数。
例如我们的程序告诉sysrepo,我们要订阅/net/eth0/ip这个xml地址,当有人发消息给sysrepo,写这个路径时,sysrepo就会告诉我们这个xml发生变化了,我们就执行实际的操作。
3.sysrepo的修改配置
修改配置用写xml路径的方法, 例如写xml路径/net/eth0/ip,那么sysrepo就会把修改的信息写到此路径中,保存到sysrepo的数据库中。
但是sysrepo并没有去做修改ip的实际工作,这个实际工作是怎么完成的呢?
sysrepo提供了一个回调函数,我们只要把这个回调函数写好就行。
当写xml路径时,sysrepo就会调用回调函数,完成实际的工作。
sysrepo实际只是保存配置,并调用回调函数这两件事。
完成一个修改配置的操作,共需要3个程序,一个是发命令的程序,一个收命令的sysrepo,另外我们自己还要写个程序,接收sysrepo发过来的修改配置的路径,我们自己的程序发现是要修改ip的路径,那么就改ip了。
4.sysrepo返回状态
和2类似,我们的程序收到读某个路径的消息,就把数据写到指定路径中就可以




sysrepo

 (2018-02-19 17:56:56)
1.建议先用ubuntu装sysrepo

2. sysrepo例子使用说明
2.0 说明
sysrepoctl用来安装yang文件
sysrepocfg用来加载xml文件 
帮助看 `sysrepoctl -h` or `sysrepocfg -h`. 

2.1  先安装两个yang文件
$ sudo sysrepoctl --install --yang=/home/leim/sysrepo/examples/yang/ietf-interfaces@2014-05-08.yang --owner=用户组:用户名 --permissions=644
$ sudo sysrepoctl --install --yang=/home/user/sysrepo/examples/yang/iana-if-type.yang --owner=leim:leim --permissions=644
看 安装
$ sysrepoctl -l

2.2 启动sysrepod
/usr/bin/sysrepod

2.3 导入xml配置文件
$ sysrepocfg --import=ietf-interfaces.data.xml --format=xml --datastore=startup ietf-interfaces

2.4 在build/example目录下有已经编译好的例子
$ ./sr_get_item_example
[INF] Connected to daemon Sysrepo Engine at socket=/var/run/sysrepod.sock
/ietf-interfaces:interfaces/interface[name='eth0']/enabled = true

3.其它例子
sr_get_items_example 查看多个
cat /etc/sysrepo/data/ietf-interfaces.startup

sr_set_item_example 
sr_delete_item_example 
sr_get_items_iter_example  用高级的迭代器方式,但是运行后没反应

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多