Standards

Let's learn about the difficulties of maintaining standards in network configurations and how automation helps achieve uniformity.

The difficulty of maintaining standards

Corporate standards are very hard to maintain as networks evolve and transform. Often, the pressures of projects and deliverables of day-to-day work demands lead to standards being overlooked, put off, or ignored. Natural configuration drift can occur over time as network devices and IP addresses come and go. If network devices continue to operate, misconfigurations or poor standards may go unnoticed. When identified, these cosmetic corrections may be deemed a low priority.

Standards using Ansible

Ansible’s dynamic templating guarantees a standardized configuration for every device. Complete configuration coverage is achievable, and every line of code in the running-configuration can be derived from a template. Accomplishing full idempotency between the source of truth and the device configuration guarantees the uniform application of intent-based. Neither scale is a problem with this approach, nor is the human error factor.

When new standards arise, or changes to existing standards are required, only the centralized templates and data models are updated. These changes are pushed through the automation engine delivering the new standards to the network.

Golden configuration

Sometimes referred to as a “desired state configuration” in Windows operating system administration, a golden configuration has many names. Using Jinja2 templates and YAML data models, a golden configuration for each device in the network is achieved using software development methodologies. Logic within the templates is used to intelligently generate device configuration commands. These configurations are applied at scale to all devices included in the Ansible hosts.ini inventory file.

The master branch represents the golden configuration for the network. Automated builds package the various artifacts from the master branch and provide a version number for that iteration of the network. When changes are required, however minor, working branches are created for code to be developed and tested. Frequent Git commits during development are used to check changes into the working branch. A pull request is used to merge these accumulated changes into the master branch. This is then deployed into production to update the standardized, golden configuration at scale.

Get hands-on with 1200+ tech skills courses.