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 用高级的迭代器方式,但是运行后没反应