My personal study notes for the JNCIA-DEVOPS. I do this so that I can quickly reference and update them and hopefully others might find them useful. There’s multiple training modules / videos available for free on Junos Genius, and if you complete the training and practice test they offer a free voucher to take the exam (usually around $150 USD). https://cloud.contentraven.com/junosgenius
Exam topics outline is from the juniper website: https://www.juniper.net/us/en/training/certification/certification-tracks/devops/?tab=jnciadevops
Junos Automation Stack and DevOps Concepts
- Automation tools –
- Automation frameworks
- Automation APIs
- DevOps culture, practices, and tools
Requirements > Design > Code > Test > Deploy
- Next phase only starts after finishing previous one
- Generally considered as lacking flexibility and slow to develop new features
- The larger the new codebase, the more likely there will be issues in production
- A software or systems development methodology
- Initially “agile infrastructure” 2008
- Unifies development, operations, and other teams (enables communication, collaboration, and integration)
- Influenced by lean manufacturing
- Changes in functionality happen frequently to quickly move improvements into production (automation and orchestration, roll back easily if errors are detected)
- Customer satisfaction, via contnuous delivery of valuable software, is highest priority.
- Frequent releases
- Welcome changing requirements
- Daily cooperation between developers and business people
- Self-organizing teams reflecting how to become more effective, adjusting accordingly
XML & NETCONF
XML concepts and syntax- extensible markup language, a tool used for storing and transporting data.
Consists of many nested elements. Example:
XPath concepts and syntax – query language for selecting nodes from an XML document.
A way of searching and parsing data from XML.
Note: XPath and XML uses the term “nodes”, but does not correlate to typical network nomenclature of nodes. These nodes refer to the following XML data:
Absolute Path- uses complete path from the root element to the desired element.
Good resource for delving into XPath definitions: https://www.tutorialspoint.com/xpath/index.htm
NETCONF (RFC 6241) concepts – Network configuration protocol.
Content: XML Data.
Operations: <GET-CONFIG> (retrieve all or part of specified configuration datastore), <edit-config> (edit a configuration datastore by creating, deleting, merging, or replacing content).
Messages: <RPC> (push / request) <RPC-REPLY> (reply to RPC request), and <NOTIFICATION> (ex. subscribe to updates for operational service status).
Transport: SSH & TLS, uses port 830
XML API concepts and syntax
Data Serialization – structuring data to be machine readable.
- YAML (YAML Ain’t a Markup Language) – uses white space to denote structure.
Ansible – Configuration management and deployment tool. Declarative, idempotent, client-less.
Ansible core Junos (written and produced by Juniper)
Galaxy Juniper.Junos (written and produced by Juniper)
Inventory location: /etc/ansible/hosts
Variables: Inventory, group_vars, host_vars, custom files
Playbooks: YAML (the main part of instructions for ansible), example:
Roles: useful for organizing and splitting up scripts to be re-used elsewhere.
Python or PyEZ
- Syntax and concepts
- Remote Procedure Calls (RPCs)
- PyEZ exception handling
- Device status and configuration handling
- Configuring the Junos REST API
- Using the REST API Explorer
- Using curl to access the REST API
Things to know:
Who develops the Ansible core modules for Junos OS?
Who develops the Ansible Galaxy modules for Junos OS ?
Know the difference between json and yaml.
Know what a python dictionary looks like.