Junoser is a JUNOS configuration PEG parser which can be automatically generated from Juniper's netconf.xsd. (XML Schema Definition for NETCONF)
-
Configuration Validation
- Structured "show configuration" format
- One-liner "| display set" format
-
Configuration Translation
- Inter-translation between structured form and display-set form
NOTE
Inter-translation from display-set form into structured form is experimental feature in this release.
$ gem install junoser
To verify configurations syntax:
$ junoser -c config.txt
or
$ cat config.txt | junoser -c
To translate configuration into "display set" form:
$ /exe/junoser -d config.txt
set protocols bgp group ebgp-peers neighbor 192.0.2.2
or
$ cat config.txt | junoser -d
set protocols bgp group ebgp-peers neighbor 192.0.2.2
Use junoser -s
to translate into structured form.
From Juniper website, you can download the XSD schema for the version of JunOS you want to target:
- Junos XML API
- Select your version
- Application Tools
- XML Schema for Configurator Data
Alternatively, you can retrieve the schema with Netconf:
$ ssh -Csp 830 JUNOS netconf < example/get-schema.xml | sed -n '/^<xsd:schema/,/^<\/xsd:schema/p' > junos-XXX.xsd
Put it in tmp/
, update xsd_path
in Rakefile
and run:
$ bundle exec rake build:config build:rule
Alternatively, you may look in example/
for some prebuilt rules
file. If you want to use them, copy one to tmp/rules.rb
and run:
$ bundle exec rake build:rule
Please report issues or enhancement requests to GitHub issues. For questions or feedbacks write to my twitter @codeout.
Or send a pull request to fix.
Copyright (c) 2020 Shintaro Kojima. Code released under the MIT license.