Configuration management maintains, controls, documents, and standardizes network-device configurations. Manual, one-by-one configuration becomes time-consuming, error-prone, and difficult to track as networks grow. section 25.0 section 25.1
A practical configuration-management process includes:
- Establishing standards for DNS, NTP, routing protocols, QoS, AAA, security, logging, and monitoring. section 25.3
- Defining desired configurations with templates, standardized formats, and device-specific variables. section 25.3
- Deploying changes from centralized servers and monitoring devices to enforce conformity. section 25.3
- Recognizing configuration drift, in which human error and accumulated ad hoc changes cause configurations to diverge from standards. section 25.3
Infrastructure-as-code tools such as Ansible and Terraform automate and standardize configuration management. Puppet and Chef provide contrasting agent-based, pull-oriented approaches, whereas Ansible and Terraform use agentless, push-oriented models. section 25.0 section 25.2.3
service { 'ssh': #1
ensure => running, #1
} #1
Puppet DSL can express a desired service state declaratively, such as ensuring that SSH is running. section 25.2.3


