Chapter 4 Where to Start with Network Automation?

For diagrams, tables, or exact code formatting, .

JOHN W. CAPOBIANCOPRINTED PAGE 77

o Standard interface configuration for shutdown / unused interfaces. o Security controls. o Applied on all hosts. o A port-profile.

 30_IOS_host_interfaces_OPZone.j2: o Operational zone interfaces. o Standard access port configuration. o A port-profile.

 31_IOS_host_interfaces_SECURITY.j2: o Interfaces used by security equipment. o Locked down access port. o A port-profile.

 32_IOS_host_interfaces_WAP.j2: o Configuration for an interface with a wireless access point connected. o Some security measures applied along with PoE. o A port-profile.

 33_IOS_host_interfaces_custom.j2: o Custom access ports. o Do not fit a standard port-profile. o Granular control with all interface options available as flags that can be enabled.

 34_IOS_multicast.j2: o Multicast related configurations. o Deployed at the core and distribution layers.

 35_IOS_netflow.j2: o Netflow related configurations. o Applied at the core, distribution, and access layers.

The templates above, when combined with the information from data models, creates a complete network configuration for a device. Other features that arise can be cloned and be modified versions of existing, working, proven, logic.

Coverage by Platform

Once configurations and features are covered, confirm there are no syntax issues across different IOS platforms. These might be simple spacing differences; however, the templates need to match the running- configuration, or it will never be idempotent. Using check mode with verbosity and checking for idempotency between the coded solution and the running-configurations gives a sense of when coverage has been achieved.

A documentation.yml Ansible playbook is developed in Chapter 9. This playbook generates offline copies of the compiled output per-device used to validate syntax, spacing, and used as a source of truth about the intent-based network.