我正在使用NETCONF的PHP库:https://github.com/Juniper/netconf-php . 到目前为止,我已经设法获得了我的脚本所需的配置部分,但最近的挑战仍然是将新配置加载到路由器中 . 我的路由器上的日志:
Nov 27 14:34:48 router.nl sshd[78164]: subsystem request for netconf by user user
Nov 27 14:34:48 router.nl mgd[78168]: UI_CMDLINE_READ_LINE: User 'x', command 'xml-mode netconf need-trailer '
Nov 27 14:34:48 router.nl file[78167]: UI_LOGIN_EVENT: User 'x' login, class 'j-super-user' [78167], ssh-connection 'x.x.x.x 46796 x.x.x.x 22', client-mode 'netconf'
Nov 27 14:34:48 router.nl file[78167]: UI_NETCONF_CMD: User 'x' used NETCONF client to run command 'lock cannot reconstruct arguments'
Nov 27 14:34:48 router.nl file[78167]: UI_NETCONF_CMD: User 'x' used NETCONF client to run command 'edit-config cannot reconstruct arguments default-operation=merge cannot reconstruct arguments'
Nov 27 14:34:48 router.nl file[78167]: UI_NETCONF_CMD: User 'x' used NETCONF client to run command 'unlock cannot reconstruct arguments'
Nov 27 14:34:48 router.nl file[78167]: UI_NETCONF_CMD: User 'x' used NETCONF client to run command 'close-session'
它一直在抱怨无法重建论点 . 这是我正在努力工作的脚本:
require_once '../app/include/netconf/Device.php';
$deviceParams = [
'hostname' => 'x.x.x.x',
'username' => 'x',
'password' => 'password',
'port' => 22
];
$this->device = new Device($deviceParams);
$this->connectRouter();
$islocked = $this->device->lock_config();
$command = '';
if($islocked) {
$this->device->load_xml_configuration($command, 'merge');
}
$this->device->unlock_config();
$this->device->close();
我在netconf {ssh {树下设置了traceoqptions,这是其中一个输出(一切似乎都好):
Nov 30 10:41:57 [86546] Incoming:
merge]]>]]>
Nov 30 10:41:57 [86546] Outgoing:
Nov 30 10:41:57 [86546] Outgoing:
Nov 30 10:41:57 [86546] Outgoing:
Nov 30 10:41:57 [86546] Outgoing: ]]>]]>
Nov 30 10:41:57 [86546] Incoming: ]]>]]>