Skip to content

PEG parser for JUNOS configuration.

License

Notifications You must be signed in to change notification settings

jerikan-network/junoser

 
 

Repository files navigation

Junoser

Build Status Code Climate Inline docs

Junoser is a JUNOS configuration PEG parser which can be automatically generated from Juniper's netconf.xsd. (XML Schema Definition for NETCONF)

Features

  • 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.

Getting Started

$ gem install junoser

Usage

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.

Updating parser for new directives

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

Contributing

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 and License

Copyright (c) 2020 Shintaro Kojima. Code released under the MIT license.

About

PEG parser for JUNOS configuration.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Ruby 100.0%