Tutorial 9: Configuration Management and Change Control

COMP347 Unit 8 – Network Management and Network Operations

Table of Contents

Learning Objectives

After completing this extended tutorial, you should be able to:

Overview

Configuration management is the discipline of systematically handling the state of network devices — from initial deployment to ongoing maintenance, updates, and decommissioning. It ensures that devices are in a known, consistent, and compliant state, and that changes are tracked, reviewed, and reversible. This tutorial provides a comprehensive, in‑depth exploration of configuration management and change control, covering the full lifecycle: planning, deployment, monitoring, auditing, and optimization.

We start with the fundamentals: why configuration management is critical for reliability and security. Then we dive into specific practices: configuration backup (automated retrieval and archiving), version control (using Git for network configurations), and compliance auditing (detecting drift and policy violations). The change control process — including request, review, approval, implementation, and rollback — is detailed within the ITIL and DevOps context. We explore automation: using infrastructure‑as‑code (IaC) tools like Ansible and Terraform, and leveraging NETCONF/RESTCONF with YANG for programmable configuration. Best practices, common pitfalls, and case studies are provided to ground the theory in real‑world operations.

Technical and Theoretical Content

1. Introduction to Configuration Management

Configuration management (CM) encompasses the processes, tools, and practices used to manage the configuration of network devices. Its key goals:

Configuration management is a core part of the FCAPS framework (Configuration Management). It interacts with other areas: fault management (errors often due to misconfigurations), performance (optimizing parameters), and security (ensuring secure settings).

2. Configuration Lifecycle Management

The configuration lifecycle (adapted from ITIL) includes:

  1. Planning and Design: Define desired state, choose templates, and version schemas.
  2. Deployment/Provisioning: Apply initial configuration to new devices.
  3. Operation: Monitor configurations, detect drift, and handle changes.
  4. Change Management: Formal process for modifications.
  5. Retirement: Remove configurations for decommissioned devices.

The lifecycle is continuous: monitoring feeds back into planning, and changes are documented and versioned.

3. Configuration Backup and Archiving

Regular backups of device configurations are essential. Strategies:

Backup frequency should match change frequency: daily for stable networks, after each change for dynamic environments.

4. Version Control for Infrastructure as Code

Treating network configurations as code (IaC) enables modern DevOps practices:

This practice is foundational for network automation and aligns with infrastructure‑as‑code (IaC) methodologies used in cloud and on‑prem environments.

5. Auditing, Compliance, and Policy Enforcement

Configuration auditing ensures devices adhere to security and operational policies. Key aspects:

Tools like Ansible (with compliance modules), Chef InSpec, or vendor‑specific solutions (Cisco DNA Center) help automate auditing.

6. Change Control Processes and Best Practices

Change control is the formal process for managing modifications to the network. Based on ITIL, the process includes:

In agile/automated environments, changes may be more frequent; approval processes may be streamlined with automated testing and gradual rollout (canary deployments).

7. Automated Configuration Generation and Deployment

Automation reduces manual errors and speeds deployments:

Protocols: NETCONF and RESTCONF enable programmatic configuration using YANG models, with transactional and candidate configurations.

8. Configuration Management Tools (Ansible, Terraform, NETCONF)

Choice depends on environment (cloud vs. on‑prem), device types, and team skills.

9. Best Practices and Common Pitfalls

10. Case Studies

Quiz (44 Questions)

All answers are hidden; click Show Answer to reveal.

Question 1:

What is the primary goal of configuration management in network operations?

Show Answer
To maintain consistent, known, and compliant device configurations across the network.
Question 2:

List the five stages of the configuration lifecycle as described in the tutorial.

Show Answer
Planning and Design, Deployment/Provisioning, Operation, Change Management, Retirement.
Question 3:

Why is regular configuration backup important?

Show Answer
To enable quick recovery from failures, misconfigurations, or malicious changes, and to provide audit trails.
Question 4:

What is configuration drift?

Show Answer
The deviation of a device's current configuration from its intended (baseline) state, often caused by manual changes.
Question 5:

How does version control (e.g., Git) benefit configuration management?

Show Answer
Provides full history, audit trail, branching, peer review (pull requests), and revert capabilities.
Question 6:

Name two tools commonly used for automated configuration backup.

Show Answer
RANCID and oxidized.
Question 7:

What is the purpose of a Change Advisory Board (CAB)?

Show Answer
To review and approve or reject significant change requests based on impact, risk, and resources.
Question 8:

List the steps of a typical change control process.

Show Answer
Request → Review → Approval → Scheduling → Implementation → Verification → Closure → Post‑implementation review.
Question 9:

What is the role of a rollback plan in change management?

Show Answer
A predefined procedure to revert changes and restore service if the change causes issues.
Question 10:

How can automation improve configuration management?

Show Answer
By reducing manual errors, speeding up deployments, enforcing consistency, and enabling CI/CD pipelines.
Question 11:

What are the key elements of a configuration template?

Show Answer
Variables for device‑specific parameters (hostname, IP addresses, interfaces) and static configuration blocks.
Question 12:

Explain the concept of "infrastructure as code" (IaC) in networking.

Show Answer
Managing network configurations using declarative code (e.g., YAML, HCL) stored in version control, enabling automation and repeatability.
Question 13:

What is the advantage of using NETCONF over CLI scripting for configuration?

Show Answer
NETCONF uses structured data (YANG), supports transactionality, candidate configurations, and standardized error handling.
Question 14:

How does a compliance audit help in network management?

Show Answer
It verifies that device configurations adhere to security and operational policies, identifying risks and non‑compliance.
Question 15:

What is a "candidate configuration" in NETCONF?

Show Answer
A proposed configuration that can be modified and validated before being committed to the running configuration.
Question 16:

Why is it important to include a "peer review" in the change process?

Show Answer
To catch errors, share knowledge, and ensure quality before deployment.
Question 17:

List three common configuration management tools mentioned in the tutorial.

Show Answer
Ansible, Terraform, RANCID/oxidized, NETCONF/RESTCONF.
Question 18:

What is the difference between a "push" and a "pull" configuration deployment model?

Show Answer
Push: management system actively sends configs to devices; Pull: devices request configs from a server.
Question 19:

What is the purpose of a "diff" tool in configuration management?

Show Answer
To compare two configuration files and highlight differences, aiding in change review and troubleshooting.
Question 20:

How can you detect unauthorized changes in network devices?

Show Answer
By auditing configurations against a known baseline, and using version control and change logging.
Question 21:

Explain the concept of "configuration drift" and its potential impact.

Show Answer
Drift leads to inconsistent state, making troubleshooting harder, security gaps, and compliance violations.
Question 22:

What is a "baseline" configuration?

Show Answer
A known good configuration that serves as the reference for a device role, against which current configs are compared.
Question 23:

Why should change implementation be scheduled during maintenance windows?

Show Answer
To minimize impact on users and to allow for extended troubleshooting if issues arise.
Question 24:

What is the role of a "change log"?

Show Answer
To record all changes made to configurations, including who made them, when, and the reason, for auditability.
Question 25:

How does Infrastructure as Code (IaC) support disaster recovery?

Show Answer
By allowing rapid re‑provisioning of entire network configurations from version‑controlled code, reducing recovery time.
Question 26:

What is the purpose of using variables in configuration templates?

Show Answer
To separate device‑specific data from the static template, enabling reuse and reducing errors.
Question 27:

What is a "change window"?

Show Answer
A pre‑approved time period when changes can be implemented with minimal business impact.
Question 28:

How can automation help in compliance remediation?

Show Answer
By automatically detecting and correcting drift to enforce policy compliance without manual intervention.
Question 29:

What are the risks of not having a formal change control process?

Show Answer
Unplanned outages, configuration conflicts, security breaches, and difficulty in tracing the cause of issues.
Question 30:

What is the difference between "running" and "startup" configuration?

Show Answer
Running config is the current active configuration; startup config is stored in NVRAM and loaded at boot.
Question 31:

Why should you validate a configuration before deploying it?

Show Answer
To catch syntax errors, policy violations, and ensure it will work as expected, reducing outage risk.
Question 32:

What is a "post‑implementation review" in change management?

Show Answer
An evaluation after the change to assess success, identify lessons, and improve future changes.
Question 33:

How can you use Git hooks in a network automation pipeline?

Show Answer
To trigger syntax checks, linters, or deployment jobs when code is pushed or merged.
Question 34:

What is the advantage of using a declarative approach (e.g., Terraform) over imperative scripts?

Show Answer
Declarative defines the desired state; the tool determines the steps to achieve it, simplifying management and reducing drift.
Question 35:

Explain the term "configuration golden image".

Show Answer
A base configuration template with all standard settings, used as a starting point for new devices of a given role.
Question 36:

What is the role of a "network automation engineer" in configuration management?

Show Answer
To design, implement, and maintain automated pipelines for configuration deployment, backup, and compliance.
Question 37:

How can you ensure that changes are not applied during critical business hours?

Show Answer
By enforcing change windows and using scheduling in automation tools.
Question 38:

What is the purpose of a "configuration management database" (CMDB)?

Show Answer
To store and manage information about network assets and their configurations, supporting change and incident management.
Question 39:

What is the difference between a "commit" and a "rollback" in version control?

Show Answer
A commit saves a new version; a rollback reverts to a previous version.
Question 40:

Why is it important to keep configuration backups in a different location from the devices?

Show Answer
To protect against site disasters; backups should be geographically distributed.
Question 41:

What is a "known good" configuration?

Show Answer
A configuration that is proven to work correctly and can be used as a rollback target.
Question 42:

What is the purpose of a "staged" deployment in network automation?

Show Answer
To test changes on a small subset of devices before rolling out to the entire network, reducing risk.
Question 43:

How does configuration management contribute to security?

Show Answer
By enforcing secure settings (e.g., passwords, ACLs, encryption) and detecting unauthorized changes.
Question 44:

What is the role of "documentation" in configuration management?

Show Answer
To record design decisions, variable definitions, and topology maps, facilitating knowledge transfer and troubleshooting.

Exercises (22 Applied Problems)

Sample solutions are hidden – click to reveal.

Exercise 1:

You have a network of 500 routers. Design an automated backup strategy using an open‑source tool. Specify the frequency, storage format, and retention policy.

Show Sample Solution
Use oxidized with a cron job to backup daily. Store in Git repository with date stamps. Retention: keep all versions in Git (history), with tags for monthly snapshots. Store backups on a remote server with encryption.
Exercise 2:

Write an Ansible playbook snippet to push a new ACL configuration to a Cisco router, including a rollback plan if the connection is lost.

Show Sample Solution
- name: Apply ACL
  hosts: routers
  tasks:
    - name: Push ACL config
      ios_config:
        lines:
          - ip access-list extended 101
          - permit ip any any
        before: "no ip access-list extended 101"
      register: result
    - name: Rollback if failed
      fail:
        msg: "Rollback needed"
      when: result.failed
    - name: Backup before change
      ios_config:
        backup: yes
            
Exercise 3:

Explain how you would detect configuration drift on a set of firewalls and automatically remediate it to a desired baseline.

Show Sample Solution
Use Ansible with `ios_config` (or similar) to diff the running config against a stored baseline file. If differences exist, push the baseline config to the device and log the action.
Exercise 4:

Define a change control process for a medium‑sized enterprise, including roles and approval gates. Include a rollback procedure.

Show Sample Solution
Requestor submits a change request; network architect reviews; CAB (including security) approves; changes are implemented during maintenance window; rollback plan is prepared; after change, verify and close; if failure, execute rollback script.
Exercise 5:

You need to change the OSPF hello interval on all core routers. How would you automate this and ensure it is done without causing adjacency flaps?

Show Sample Solution
Use Ansible with a template to change the hello interval. Stagger the change per router (or per area) to avoid simultaneous restarts. Use a `wait_for` after each change to verify neighbor adjacency is restored.
Exercise 6:

What are the advantages of using Git for network configuration versioning? How would you enforce code reviews?

Show Sample Solution
Advantages: history, branching, collaboration. Enforce reviews by requiring pull requests and using approval rules (e.g., at least two approvers) before merging into the main branch.
Exercise 7:

Design a compliance policy for SSH access on routers. Specify the required settings and how you would audit them.

Show Sample Solution
Policy: SSH v2 only, RSA key length ≥2048, timeout 60s, max retries 3. Audit: use Ansible to check `show ip ssh` and `show running-config` for these settings; flag deviations.
Exercise 8:

You have a legacy device that only supports CLI. How would you integrate it into a modern configuration automation framework?

Show Sample Solution
Use Ansible with `cli_command` module to send commands and parse output (maybe using `textfsm`). Store configurations in Git. Backup with `expect` scripts as fallback.
Exercise 9:

Explain the difference between a "candidate" configuration and a "running" configuration in NETCONF. How would you use a candidate to perform a safe change?

Show Sample Solution
Candidate is a workspace where changes can be made and validated before committing to running. Use: create candidate, apply changes, validate (e.g., with `validate` RPC), then commit. If validation fails, discard.
Exercise 10:

Write a Python script using Netmiko to backup all devices defined in a YAML inventory file, storing the output in a directory with timestamp.

Show Sample Solution
import netmiko
import yaml
import datetime
with open('devices.yml') as f:
    devices = yaml.safe_load(f)
timestamp = datetime.datetime.now().strftime('%Y%m%d_%H%M')
for device in devices:
    conn = netmiko.ConnectHandler(**device)
    output = conn.send_command('show running-config')
    with open(f'backups/{device["host"]}_{timestamp}.cfg', 'w') as f:
        f.write(output)
            
Exercise 11:

How can you use a CI/CD pipeline to automatically deploy a configuration change after it is merged in Git?

Show Sample Solution
Use Jenkins/GitLab CI with a webhook on merge. The pipeline runs linters, pushes configs via Ansible to a staging environment, runs tests, then to production with approval step.
Exercise 12:

Describe the steps to perform a configuration rollback on a router using CLI and using NETCONF.

Show Sample Solution
CLI: copy tftp backup to running/startup. NETCONF: use the `rollback` RPC if supported, or replace running with a saved candidate configuration.
Exercise 13:

What are the security implications of storing network configurations in plain text in Git?

Show Sample Solution
Sensitive information (passwords, SNMP community strings) could be exposed. Mitigations: use Ansible Vault, git‑crypt, or store secrets separately and inject via variables.
Exercise 14:

You need to deploy a new standard ACL on 50 firewalls. How would you generate the device‑specific configs from a template?

Show Sample Solution
Use Jinja2 templating with variables per device (e.g., interface lists). Generate configs and then push using Ansible.
Exercise 15:

What is the purpose of a "configuration management database" (CMDB) and how does it relate to asset management?

Show Sample Solution
CMDB stores detailed information about each device (model, OS, serial, location, configuration). It supports change, incident, and problem management by providing context.
Exercise 16:

You have a network with devices from multiple vendors. How would you standardize configuration management across them?

Show Sample Solution
Use a tool like Ansible with vendor‑specific modules, abstract device differences via variables and group vars, and use a common YANG model (OpenConfig) where possible.
Exercise 17:

Describe how to implement a "change freeze" period (e.g., before an audit) and how to enforce it.

Show Sample Solution
Communicate freeze dates; prevent merges in Git pipeline via branch protection; disable automation triggers; manually approve any emergency changes.
Exercise 18:

What is the purpose of a "dry run" in configuration automation?

Show Sample Solution
To simulate the changes without actually applying them, allowing validation of syntax and logic before production deployment.
Exercise 19:

Write a YANG module snippet for a simple interface configuration (name, enabled, description).

Show Sample Solution
container interfaces {
    list interface {
        key "name";
        leaf name { type string; }
        leaf enabled { type boolean; default true; }
        leaf description { type string; }
    }
}
            
Exercise 20:

How can you ensure that configuration changes do not cause network outages due to mismatched MTU or duplex settings?

Show Sample Solution
Validate settings against device capabilities, use staged deployment (one interface at a time), and monitor error counters after change.
Exercise 21:

Explain the concept of "idempotency" in configuration automation and why it is important.

Show Sample Solution
Idempotency means applying the same configuration multiple times results in the same final state. It prevents unintended changes and allows safe re‑runs.
Exercise 22:

You have a network with 200 devices and you need to change the SNMP community string across all of them. How would you do it with minimal risk?

Show Sample Solution
Use Ansible to push the new community, but first test on a few devices. Update monitoring systems to use the new string. Use a staged rollout by device type or site, with rollback plan.

Homework (18 In‑Depth Assignments)

Sample answers are hidden; use them to guide your study.

Homework 1:

Write a comprehensive guide on setting up a configuration backup and version control system for a large enterprise network using Git and RANCID/oxidized. Include installation, configuration, and automation steps.

Show Sample Answer

Guide should cover: setting up oxidized with Git integration, configuring device groups, setting up cron jobs for periodic backups, and using Git hooks to trigger compliance checks.

Homework 2:

Analyze a recent major network outage caused by a configuration error (e.g., Facebook 2021, AWS S3). Describe the change that caused it, and what configuration management practices could have prevented it.

Show Sample Answer

Facebook 2021: BGP configuration error caused loss of DNS resolution. Prevention: peer review, staged rollout, automated validation of BGP changes, and rollback procedures.

Homework 3:

Design a change control policy for a financial institution with strict compliance requirements. Include approval workflows, emergency change procedures, and audit trails.

Show Sample Answer

Policy: standard changes require CAB approval, emergency changes require immediate manager approval and post‑fix review. All changes logged with timestamp, approver, and outcome. Audit logs retained for 7 years.

Homework 4:

Explain the role of YANG in configuration management and how it enables automation. Compare it with CLI‑based methods.

Show Sample Answer

YANG provides a structured data model for config and state, enabling programmatic access, validation, and transactional changes. CLI is brittle and difficult to parse. YANG reduces errors and supports multi‑vendor.

Homework 5:

Describe the steps to migrate a network from manual CLI‑based configuration management to an automated IaC approach using Ansible and Git.

Show Sample Solution

Phase 1: Inventory and document current configs. Phase 2: Create templates and variable files. Phase 3: Use Ansible to push configs to a lab environment. Phase 4: Staged rollout to production. Phase 5: Enable CI/CD pipeline for future changes.

Homework 6:

Explain the concept of "configuration drift" and how it can be detected and remediated using automation. Provide a real‑world example.

Show Sample Solution

Drift is when device configs deviate from the desired baseline. Detection: periodic compliance scans (e.g., with Ansible) compare running config to stored baseline. Remediation: automatically reapply the baseline or alert operators.

Homework 7:

How would you handle configuration management for a hybrid network that includes both on‑premises hardware and cloud‑based virtual network functions (VNFs)?

Show Sample Solution

Use a unified tool like Terraform for cloud and Ansible for on‑prem. Store all configs in a single Git repository with separate directories. Use common templating for consistency. Implement CI/CD for both environments.

Homework 8:

Discuss the advantages and disadvantages of using a push model (e.g., Ansible) vs. a pull model (e.g., device pulls from a server) for configuration deployment.

Show Sample Solution

Push: simple, immediate, but requires network connectivity to devices. Pull: scales better for many devices, but devices need to be configured to pull. Push is more common for network devices.

Homework 9:

Write a detailed analysis of the security risks associated with storing device passwords in configuration files and how to mitigate them in an automated environment.

Show Sample Solution

Risks: plain‑text passwords in Git. Mitigations: use Ansible Vault, store secrets in a vault (HashiCorp Vault), and use AAA (TACACS/RADIUS) for authentication without local passwords.

Homework 10:

Explain the concept of "candidate configuration" and how it facilitates safe changes. Contrast it with the traditional CLI method.

Show Sample Solution

Candidate config is a copy of the running config that can be edited and validated before committing. CLI changes are applied immediately. Candidate reduces risk and allows transactional changes.

Homework 11:

Design a configuration audit framework for a network with 1000 devices from multiple vendors. Include the policies to be audited and the frequency.

Show Sample Solution

Policies: SSH v2, SNMPv3, strong passwords, ACLs. Use a tool like Ansible with custom modules or Chef InSpec. Audit daily with reporting to dashboard; automatic remediation for critical issues.

Homework 12:

How can you use configuration management to assist in network inventory and lifecycle management?

Show Sample Solution

By maintaining a CMDB with device details (model, OS version, serial, location) and configuration versions, you can track assets, plan upgrades, and avoid unsupported devices.

Homework 13:

Write a case study on a successful implementation of configuration automation in a large enterprise, highlighting the challenges and benefits.

Show Sample Solution

Include: initial state (manual CLI), project goals, tool selection (Ansible), pilot phase, rollout, training, results (reduced outages, faster deployments).

Homework 14:

Explain the role of "change management" in DevOps culture. How does it differ from traditional ITIL change management?

Show Sample Solution

DevOps emphasizes automation, peer review, and continuous deployment. Traditional ITIL is more bureaucratic. DevOps changes are smaller, more frequent, and automated with automated testing and rollback.

Homework 15:

Design a comprehensive configuration backup strategy that includes both running and startup configs, with encryption and off‑site storage.

Show Sample Solution

Automated daily backup using oxidized. Encrypt with GPG before storing in Git (or store in encrypted repo). Push encrypted backups to a secondary location (AWS S3) with versioning.

Homework 16:

What are the common pitfalls in automated configuration management and how can you avoid them?

Show Sample Solution

Pitfalls: untested changes, lack of rollback, hard‑coded values, ignoring device differences. Avoid by: staging, testing, using variables, and implementing idempotency.

Homework 17:

Explain how to implement configuration management for a network that uses SDN controllers (e.g., Cisco ACI, VMware NSX). How does it differ from traditional device config management?

Show Sample Solution

SDN controllers have centralized APIs (REST). Configuration is done via the controller, not individual devices. Use tools like Terraform or Ansible to interact with controller APIs. Configuration management becomes policy‑driven.

Homework 18:

Write a research paper on the future of configuration management in the context of intent‑based networking and self‑driving networks.

Show Sample Solution

Paper should discuss: shift from low‑level configs to high‑level policies, automation of remediation, closed‑loop verification, and the role of AI in detecting and correcting drift.

Summary

This extended tutorial has provided a comprehensive exploration of configuration management and change control. We covered the fundamentals: the importance of consistency, traceability, and auditability. We examined the configuration lifecycle, backup strategies, version control with Git, compliance auditing, and the formal change control process. Automation using Infrastructure as Code (IaC) tools like Ansible and Terraform, and standard protocols like NETCONF, was discussed in detail. Best practices and common pitfalls were highlighted, and case studies illustrated real‑world applications.

Effective configuration management is foundational to reliable, secure, and agile network operations. It reduces downtime, speeds up troubleshooting, and enables the automation required for modern networks. The quiz, exercises, and homework assignments are designed to reinforce both theoretical understanding and practical skills.

In the next tutorial, we will explore Network Automation, NETCONF, RESTCONF, and APIs, diving deeper into the programmatic interfaces that underpin modern network management.

COMP347 Unit 8 – Extended Tutorial 9 • TrustOpen University • Last updated: August 2026