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 junoserTo verify configurations syntax:
$ junoser -c config.txtor
$ cat config.txt | junoser -cTo translate configuration into "display set" form:
$ /exe/junoser -d config.txt
set protocols bgp group ebgp-peers neighbor 192.0.2.2or
$ cat config.txt | junoser -d
set protocols bgp group ebgp-peers neighbor 192.0.2.2Use 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.xsdPut it in tmp/, update xsd_path in Rakefile and run:
$ bundle exec rake build:config build:ruleAlternatively, 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:rulePlease 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.
