Systems Manager for Network Management

Complete the full lesson to earn 25 points

Work through each section, then tap “Mark as Complete” on the last one.

Module: Network Management and Operations

Lesson: Systems Manager for Network Management

Introduction: The Evolution of Network Operations

In the early days of networking, managing infrastructure was a largely manual, "box-by-box" process. Network engineers would log into individual switches, routers, and firewalls via command-line interfaces (CLI) to make changes, update configurations, or troubleshoot connectivity issues. As networks grew from a few dozen devices to thousands of nodes distributed across data centers, cloud environments, and remote branches, this manual approach became unsustainable. The risk of human error, the time required for consistent updates, and the inability to scale operations created a critical bottleneck in IT departments.

Systems Manager (SM) tools—often referred to as configuration management or orchestration platforms—represent the bridge between traditional manual network administration and the modern era of Network Reliability Engineering (NRE). At its core, a Systems Manager acts as a centralized brain for your network infrastructure. It provides a platform to define the desired state of your network, automate the deployment of configurations, and ensure that those configurations remain consistent over time through continuous monitoring and remediation.

Why does this matter? In modern business environments, the network is the foundation upon which all applications run. If your network is misconfigured or lacks visibility, every other service—from database access to customer-facing web applications—will suffer. By using a Systems Manager, you transition from "doing" network changes to "defining" network outcomes. This shift significantly reduces downtime caused by configuration drift and allows your team to focus on high-value architectural improvements rather than repetitive, low-level tasks.


Understanding the Architecture of Network Systems Managers

To effectively implement a Systems Manager, you must first understand the core components that make these systems function. While every platform (such as Ansible, SaltStack, or vendor-specific controllers) has unique naming conventions, they generally share a common architecture based on three pillars: the Control Node, the Managed Nodes, and the Source of Truth.

1. The Control Node

The Control Node is the central server or workstation where the automation logic resides. This is where you write your playbooks, scripts, or templates. The Control Node communicates with your network devices using standard protocols like SSH, NETCONF, RESTCONF, or gNMI. It does not necessarily need to be a physical server in your data center; it could be a containerized service in a cloud environment or even a local virtual machine running on an engineer's laptop.

2. Managed Nodes

Managed nodes are the network devices themselves—the switches, routers, load balancers, and firewalls. For a device to be "managed," it must expose an interface that the control node can interact with. In traditional environments, this is often the SSH CLI. In modern environments, these devices expose APIs (Application Programming Interfaces) that allow for structured data exchange, usually in JSON or XML formats.

3. The Source of Truth

Perhaps the most important component is the Source of Truth (SoT). This is a centralized repository that contains the "correct" configuration for your entire network. Instead of hardcoding values inside your automation scripts, you store them in a database, a Git repository, or a dedicated inventory management system like NetBox. When the Systems Manager runs a job, it pulls the current required parameters from the SoT to ensure consistency.

Callout: The "Desired State" Concept In network automation, "Desired State" refers to the configuration you want your network to have. A Systems Manager uses a process called "reconciliation" to compare the actual state of the network (what is running right now) with the desired state (what is defined in your automation code). If there is a discrepancy—such as a developer manually changing a VLAN ID on a switch—the Systems Manager identifies this drift and pushes the correct configuration back to the device to match the desired state.


Practical Implementation: Building Your First Automation Workflow

Let’s look at a practical scenario: updating a standard NTP (Network Time Protocol) configuration across a fleet of 50 switches. Doing this manually would take hours and invite typos. Using a Systems Manager, we can accomplish this in minutes.

Step 1: Define the Variable

First, define the NTP server IP address in your Source of Truth or a variables file. Keeping this separate from your logic allows you to update the NTP server globally without touching the actual code.

# ntp_vars.yml
ntp_servers:
  - 10.0.0.1
  - 10.0.0.2

Step 2: Create the Task Template

Next, you create a template that defines how the configuration should look on the device. Most modern Systems Managers use Jinja2 templates, which are essentially text files with placeholders for your variables.

# ntp_config.j2
{% for server in ntp_servers %}
ntp server {{ server }}
{% endfor %}

Step 3: Execute the Automation

Finally, you run the automation job. The Systems Manager connects to each device, checks the current running configuration, sees that it is missing the NTP servers, and applies the necessary commands.

# playbook.yml
- name: Configure NTP on switches
  hosts: switches
  tasks:
    - name: Push NTP configuration
      ios_config:
        lines: "{{ lookup('template', 'ntp_config.j2') }}"

Note: Always perform a "dry run" or "check mode" before pushing configurations to production. Most automation tools provide a flag (like --check or --diff) that shows you exactly what will change without actually applying the commands to the hardware.


Best Practices for Network Automation

Adopting a Systems Manager is a journey, not a destination. Many teams struggle because they attempt to automate everything at once or fail to establish proper operational guardrails. Follow these industry-standard practices to ensure your automation strategy is sustainable.

1. Start Small (The "Low-Hanging Fruit" Strategy)

Do not try to automate your entire core routing table on day one. Start with read-only tasks, such as automated audits or data collection. For example, create a script that logs into all devices every morning and saves a snapshot of the interface status. Once you are comfortable with the tool’s behavior, move on to low-risk configuration changes like banner updates or syslog server definitions.

2. Version Control is Mandatory

All your automation code, templates, and variable files should be stored in a Version Control System (VCS) like Git. This provides a history of every change made to your network. If a deployment causes an outage, you can instantly see who made the change, when it was made, and revert to the previous "known good" state by rolling back your code.

3. Modularize Your Code

Avoid writing monolithic scripts that do everything in one file. Break your automation into small, reusable roles or modules. For example, have a specific module for "VLAN management," another for "BGP configuration," and another for "interface descriptions." This makes your codebase easier to test, debug, and share across different members of your team.

4. Establish a Change Control Workflow

Even though your changes are automated, they should still pass through your existing change management process. Use your Systems Manager to generate a "pre-change" report that summarizes what will happen. This report can be attached to your service desk ticket, providing auditors and stakeholders with evidence that the change is intentional and vetted.


Common Pitfalls and How to Avoid Them

Even with the best tools, mistakes happen. Being aware of the common traps will save you from significant headaches during your implementation phase.

The "Configuration Drift" Trap

Configuration drift occurs when engineers make manual changes directly on the devices, bypassing the Systems Manager. Over time, the actual state of the network diverges significantly from the desired state defined in your automation code.

  • How to avoid it: Enforce a policy that manual changes are forbidden. If an emergency change must be made, the first priority afterward should be to update the Source of Truth and the automation code to reflect that change.

Authentication and Security Risks

Many Systems Managers require high-level credentials to interact with network devices. If these credentials are stored in plain text, you have created a massive security vulnerability.

  • How to avoid it: Never commit passwords or API keys to Git. Use an encrypted vault service (like HashiCorp Vault or the built-in encryption features of tools like Ansible Vault) to store sensitive information. Rotate these credentials regularly.

The "Scale" Blind Spot

A script that works perfectly on five switches might fail or time out when run against 500 switches. Network devices have limited CPU and memory; if you try to push a massive configuration update to 100 devices simultaneously, you might overwhelm the control plane of the devices or the management network.

  • How to avoid it: Use "batching" or "serial" execution. Configure your Systems Manager to update devices in small groups (e.g., 5 at a time) and verify the health of each group before moving to the next.

Warning: Be extremely cautious when automating "write memory" or "reload" commands. An automated loop that reboots your entire data center simultaneously is a career-ending event. Always include safeguards, such as requiring manual approval for high-risk operations.


Comparison: Manual vs. Automated Network Management

Feature Manual Management Automated Systems Manager
Consistency Low (human error prone) High (deterministic results)
Speed Slow (serial execution) Fast (parallel execution)
Auditability Poor (logs are often lost) Excellent (Git history)
Scalability Limited by headcount High (one engineer can manage thousands)
Drift Detection Manual, infrequent Automated, continuous

Advanced Concepts: Moving Toward Intent-Based Networking

Once you have mastered basic configuration management, you can begin exploring Intent-Based Networking (IBN). In an IBN model, you don't tell the network how to configure a route; you tell the network what outcome you want. For example, instead of writing "configure OSPF area 0 on interfaces GigabitEthernet0/1," you define an intent: "Ensure the data center core is reachable from the distribution layer."

The Systems Manager then interprets this intent, calculates the necessary configuration changes, validates them against the current topology, and deploys them. This level of abstraction requires a sophisticated Source of Truth and a robust API-driven infrastructure, but it represents the peak of network operations efficiency.

Implementing Data-Driven Automation

To reach this stage, you must treat network data as a first-class citizen. This means moving away from storing network information in spreadsheets. Use a dedicated tool like NetBox to track:

  • IP Address Management (IPAM)
  • Device inventory and hardware models
  • Circuit IDs and provider information
  • Rack and power layouts

By linking your Systems Manager to NetBox, your automation scripts can dynamically query the network data. For instance, when you deploy a new switch, your script can automatically pull its management IP, its upstream neighbor's port, and the correct VLAN list from NetBox, eliminating the need for manual data entry.


Building a Culture of Automation

The biggest hurdle to adopting a Systems Manager is often not technical—it is cultural. Many network engineers fear that automation will make their skills obsolete or that they will lose control over the network. It is important to reframe the conversation: automation is not about replacing engineers; it is about replacing "toil."

To build a successful automation culture:

  1. Encourage "Code-First" Thinking: Even if you aren't a software developer, learn the basics of YAML and Python. These are the languages of modern network management.
  2. Celebrate Small Wins: When a team member successfully automates a report or a simple configuration task, share it. Let others see the time saved and the reduced stress associated with the task.
  3. Cross-Train: Have your network team spend time with the server/DevOps team. You will find that they have already solved many of the problems you are currently facing, and they can provide valuable insights into tools and workflows.
  4. Embrace Failure: If an automation script fails, treat it as a learning opportunity, not a reason to abandon the project. Analyze why it failed, add a new test case to your suite, and move forward.

FAQs: Common Questions About Network Systems Managers

Q: Do I need to be a programmer to use a Systems Manager? A: Not necessarily. While basic scripting knowledge (especially Python) is highly beneficial, many modern tools are "declarative." This means you describe the final state using YAML or JSON, which is much closer to plain English than traditional programming.

Q: Will automation break my network? A: Automation is a tool, not a magic wand. If you automate a bad configuration, you will break your network faster than you could manually. This is why testing, dry runs, and a phased rollout are critical components of the process.

Q: Can I use a Systems Manager with legacy hardware? A: Most modern Systems Managers have "screen scraping" modules that can interact with older equipment via SSH and standard CLI. While it is not as reliable as an API, it allows you to bring legacy devices into your automation ecosystem.

Q: How do I know if I am ready for automation? A: If you find yourself doing the same task on three or more devices, you are ready to automate. Don't look for complex problems; look for repetitive ones.


Step-by-Step Guide: Setting Up Your First Automation Lab

To get comfortable with a Systems Manager, you need a safe environment to break things. Follow these steps to build a virtual lab.

  1. Install Virtualization Software: Download and install a hypervisor like VirtualBox or VMware Workstation.
  2. Deploy Network Simulators: Use tools like GNS3, EVE-NG, or Cisco CML. These platforms allow you to run virtual versions of real network operating systems (like IOS-XE, Junos, or Arista EOS).
  3. Set Up the Control Node: Spin up a small Linux VM (Ubuntu is a great choice). Install your chosen Systems Manager (e.g., Ansible via pip install ansible).
  4. Create a Simple Inventory: Create a text file (hosts.ini) in your Linux VM listing the IP addresses of your virtual switches.
  5. Test Connectivity: Run a simple command from the control node to ping all managed nodes: ansible all -i hosts.ini -m ping.
  6. Execute a Command: Try to retrieve the hostname of each device: ansible all -i hosts.ini -m ios_command -a "commands='show run | include hostname'"
  7. Iterate: Once you have this working, try pushing a configuration change, such as setting the domain name on all devices.

Key Takeaways for Network Professionals

  1. Efficiency Through Abstraction: Systems Managers allow you to shift from manual, device-by-device configuration to a centralized, model-based approach, significantly reducing operational overhead and the potential for human error.
  2. The Importance of the Source of Truth: Automation is only as good as the data it uses. Maintaining an accurate, centralized Source of Truth (like NetBox) is more important than the specific automation tool you choose.
  3. Declarative vs. Imperative: Aim for declarative automation, where you define the desired state of the network. This allows the system to reconcile differences and maintain consistency automatically, rather than relying on a sequence of commands that might fail halfway through.
  4. Security and Version Control: Treat your network configuration as software. Store all code in Git, use encrypted vaults for sensitive credentials, and subject all changes to the same rigor as application code deployments.
  5. Incremental Progress: Do not aim for full automation immediately. Start with read-only tasks, move to low-risk configurations, and gradually expand your scope as your team’s skills and confidence grow.
  6. Cultural Shift: Automation is a team effort that requires a change in mindset. Focus on eliminating repetitive "toil" to free up your team for design and architecture work, which provides more value to the organization.
  7. Safety First: Always use dry runs, phased rollouts, and thorough testing. The goal of automation is to increase reliability, not to introduce new ways to cause outages.

By following these principles, you will be well on your way to transforming your network operations. The transition to automated management is the single most effective way to handle the increasing complexity of modern infrastructure while ensuring the stability and performance of the services your users depend on. As you continue your journey, remember that the best automation is simple, readable, and—most importantly—tested.

Loading...
PrevNext