Network Automation
Network automation uses software, structured data, and device interfaces to repeat network operations consistently. It helps you inspect, configure, and validate many network devices without treating every change as a separate manual session.
itNetworking | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Network Automation
Network automation is the practice of turning a stated network outcome into repeatable work on devices. It is not a machine that replaces engineering judgment, although it will faithfully repeat any judgment you leave lying around. Before automation, the same work often meant typing commands device by device and hoping the notes, the order, and the verification survived the afternoon.
The useful picture is a pipeline. Intent says what should be true. A source of truth supplies approved facts. Inventory decides which devices receive attention. Automation logic then asks a device interface to read or change something, while validation and evidence determine whether the result deserves to be called success. If the data is stale, excellent code can produce an excellent version of the wrong configuration. Computers are very committed that way.
Keep four layers apart. A transport carries traffic. An interface defines the interaction. A data model gives fields and rules their meaning. A serialization format such as JSON or YAML only represents data. JSON is not an API, and SSH access does not make two platforms speak the same command language. This distinction saves a surprising amount of disappointed staring at otherwise cheerful output.
Automation has two familiar shapes. Task-oriented work follows an ordered procedure for collection, backup, migration, or another bounded operation. State-oriented work compares the current condition with a desired one and corrects the difference. That can be idempotent, meaning a correct target remains unchanged on a repeat run, but it is a behavior to test rather than a medal awarded to a file because it ends in YAML.
The trap is that a device accepting configuration is not the same as the network delivering the service you intended. Begin with read-only collection. Check the resolved inventory, device identity, authentication, returned data, and evidence. Then test in a lab, use one representative target, set stop conditions, and expand only when the outcome passes. A broad default group should never get to make the most exciting decision of the day.
Read the Intro for the full pipeline and its limits. Use Slides for the relationships among interfaces, models, tools, and change gates. Keep the Cheatsheet nearby when comparing NETCONF, RESTCONF, YANG, and rollout signals. The Practice Reference supplies commands for inspecting scope and running a narrow lab task. The rest of the course is how this sensible sketch becomes controlled intent, trustworthy data, bounded change, and proof that the network reached the expected state.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://datatracker.ietf.org/wg/netconf/about/
Supports
- NETCONF and RESTCONF as protocols for YANG data model-driven management
- Working-group scope for configuration, monitoring, telemetry, and zero-touch mechanisms
- YANG as the recommended NETCONF data modeling language
- https://www.rfc-editor.org/rfc/rfc6244.html
Supports
- Architecture-level relationship between NETCONF and YANG
- Role of models and protocol operations in network management
- https://www.rfc-editor.org/rfc/rfc6241.html
Supports
- NETCONF RPC request and reply model with XML encoding
- Configuration datastores and the always-present running datastore
- Optional candidate and startup datastores through capabilities
- Capability exchange, errors, and protocol operations
- https://www.rfc-editor.org/rfc/rfc7950.html
Supports
- YANG 1.1 schema and data tree concepts
- Containers, lists, leaves, leaf-lists, types, operations, and notifications
- Features as optional model portions
- https://www.rfc-editor.org/rfc/rfc8040.html
Supports
- RESTCONF access to YANG-modeled resources through HTTP
- XML and JSON representations
- Configuration datastore interaction and NETCONF lock conflicts
- Protocol error and security behavior
- https://docs.ansible.com/projects/ansible/latest/network/getting_started/
Supports
- Network inventory, playbooks, modules, collections, and connection concepts
- Network communication through SSH or HTTPS
- Network modules executing on the control node
- Read-only command and first-playbook learning path
- https://docs.ansible.com/projects/ansible/latest/network/getting_started/network_differences.html
Supports
- Control-node execution for network modules
- Multiple network connection methods and platform collections
- https://docs.ansible.com/projects/ansible/latest/network/getting_started/first_playbook.html
Supports
- Manual connectivity check before automation
- First command, playbook, and network fact collection
- https://docs.ansible.com/projects/ansible/latest/inventory_guide/intro_inventory.html
Supports
- Hosts, groups, variables, and connection data in inventory
- Inventory inspection and organization
- https://docs.ansible.com/projects/ansible/latest/inventory_guide/intro_patterns.html
Supports
- Host-pattern target selection
- Limits as an additional target constraint
- https://docs.ansible.com/projects/ansible/latest/cli/ansible-playbook.html
Supports
- Syntax check, list hosts, list tasks, limits, verbosity, check, and diff options
- https://docs.ansible.com/projects/ansible/latest/cli/ansible-inventory.html
Supports
- Inventory graph and host views used in the practice reference
- https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_checkmode.html
Supports
- Check and diff mode behavior
- Module-support and registered-result limitations
- Sensitive data exposure through diff output
- https://docs.ansible.com/projects/ansible/latest/collections/ansible/netcommon/cli_command_module.html
Supports
- Running commands on network devices through network_cli
- cli_command parameters and returned standard output
- https://ncclient.readthedocs.io/en/latest/manager.html
Supports
- NETCONF manager connection parameters
- Server capability inspection through a connected session
- https://netbox.readthedocs.io/en/stable/
Supports
- Network-specific data model for infrastructure documentation
- APIs and extensions for source-of-truth integration
- https://nornir.readthedocs.io/en/latest/
Supports
- Nornir as a Python automation framework
- Inventory, task dispatch, and plugin roles
- https://napalm.readthedocs.io/en/latest/
Supports
- Unified Python API for supported network operating systems
- Configuration manipulation and operational data retrieval
- https://github.com/sindresorhus/awesome
Supports
- Discovery starting point for curated awesome lists
- https://github.com/networktocode/awesome-network-automation
Supports
- Discovery of Batfish, Clixon, Infrahub, Arista Validated Designs, and Arista Network Test Automation
- Curated network automation ecosystem context
- https://batfish.readthedocs.io/en/latest/
Supports
- Configuration, routing, forwarding, access control, and reachability analysis
- Python interface and getting-started documentation
- https://clicon.org/
Supports
- YANG-based configuration system
- Command-line, NETCONF, and RESTCONF interfaces
- https://docs.infrahub.app/
Supports
- Schema-driven infrastructure data, versioning, and automation integration
- Concept and getting-started documentation
- https://avd.arista.com/
Supports
- Model-driven design and deployment through Ansible collections
- Vendor-specific network automation framework
- https://anta.arista.com/
Supports
- Python framework for automated Arista network testing
- Test catalogs, inventory, and result reporting
- https://www.rfc-editor.org/rfc/rfc4741.html
Supports
- NETCONF Configuration Protocol publication in December 2006
- XML-encoded RPC operations for installing, manipulating, and deleting device configuration
- https://www.rfc-editor.org/rfc/rfc6020.html
Supports
- YANG data modeling language publication in October 2010
- https://www.rfc-editor.org/rfc/rfc7277.html
Supports
- Standard YANG data model for IP management publication in June 2014
- https://www.rfc-editor.org/rfc/rfc7950.html
Supports
- YANG 1.1 publication in August 2016
- https://www.rfc-editor.org/rfc/rfc8342.html
Supports
- Network Management Datastore Architecture publication in March 2018
- https://www.rfc-editor.org/rfc/rfc8525.html
Supports
- YANG Library 1.1 publication in March 2019
- https://www.rfc-editor.org/rfc/rfc8641.html
Supports
- Subscription to YANG Notifications publication in September 2019
- https://forum.ansible.com/t/managing-network-config-drift-with-ansible-part-1/44079
Supports
- Practitioner workflow for detecting network configuration drift against a source of truth
- Operational consequence of attempting remediation without an authoritative intended-state baseline
- https://blog.ipspace.net/2019/02/building-network-automation-source-of/
Supports
- Practitioner discussion of the difficulty of deciding which network data is trustworthy for automation
- https://www.redhat.com/en/technologies/management/ansible
Supports
- Ansible Automation Platform as a supported automation platform
- https://nso-docs.cisco.com/
Supports
- Cisco Crosswork NSO service orchestration documentation
- https://netbox.dev/
Supports
- NetBox project homepage
- https://docs.nautobot.com/projects/core/en/stable/
Supports
- Nautobot core documentation
- https://www.itential.com/cloud-platform/gateway/
Supports
- Itential Gateway integration and governed execution for Ansible, Python, and OpenTofu
