My journey continues
👋 Hi, I’m Bjørnar Lintvedt
I’m a Senior Network Consultant at Bluetree, working at the intersection of networking and software development.
As mentioned in my first blog post, I’m preparing for the CCIE Automation lab exam — Cisco’s most advanced certification for network automation and programmability. I’m documenting the journey here with weekly, hands-on blog posts tied to the blueprint.
Link to my GitLab Repo
Week 3
This week has been all about getting deeper into NETCONF and YANG – two cornerstones of modern network automation.
NETCONF and ncclient
NETCONF is a protocol that lets you communicate with network devices over XML. Instead of pushing raw CLI commands, you send structured data in XML.
To work with it in Python, I used the ncclient library:
- It establishes a NETCONF session to the device
- Lets you perform operations like get, get-config, edit-config
- Uses XML payloads to push or retrieve configuration/state
YANG
YANG is the data modeling language that defines what kind of data you can send with NETCONF.
- It describes device configuration and state in a structured way.
- I familarized my self with Cisco Yang Suite, which is a tool that make it a bit easier to understand how Yang works.
- To access specific parts of the model, you often use XPath queries. Think of it as a GPS coordinate inside the XML tree – so instead of digging through thousands of lines of config, you can just ask:
👉 “Give me the interface description for GigabitEthernet0/0/0”
Orchestration Service + Automation script
Armed with this knowledge, I built a new Nautix service: Orchestration
🔹 Orchestration Service
- A Flask app serving an Orchestration API.
- API endpoints to create and list jobs
- Jobs are stored in a database and immediately trigger a NETCONF operation with ncclient
This means I can now go from“devices in inventory” → to “execute NETCONF action” in one flow. Which brings me to a new automation script.
🔸 Run netconf job on all devices in inventory
Look into my GitLab repository for more details — I’ve tried to comment the code as best as I can.
Service Interactions update
Since a new service is added, the Nautix diagram has also been updated:

Reflections from the Week
📅 What’s Next
In Week 4 I will focus on working with Ansible:
Blueprint item 2.7 Create and use a role by utilizing Ansible to manage infrastructure, given support documentation
2.7.a Loop control
2.7.b Conditionals
2.7.c Use of variables and templating
2.7.d Use of connection plug-ins such as network CLI, HTTPAPI, and NETCONF
🔗 Useful Links
Blog series