Precedence of Ansible Extra Variables

I stay as far away from Ansible as possible these days and use it only as a workflow engine to generate device configurations from Jinja2 templates and push them to lab devices. Still, I manage to trigger unexpected behavior even in these simple scenarios.

Ansible has a complex system of variable (fact) precedence, which mostly makes sense considering the dozen places where a variable value might be specified (or overwritten). Ansible documentation also clearly states that the extra variables (specified on the command line with the -e keyword) have the highest precedence.

Now consider these simple playbooks. In the first one, we’ll set a fact (variable) and then print it out:

Precedence of Ansible Extra Variables

I stay as far away from Ansible as possible these days and use it only as a workflow engine to generate device configurations from Jinja2 templates and push them to lab devices. Still, I manage to trigger unexpected behavior even in these simple scenarios.

Ansible has a complex system of variable (fact) precedence, which mostly makes sense considering the dozen places where a variable value might be specified (or overwritten). Ansible documentation also clearly states that the extra variables (specified on the command line with the -e keyword) have the highest precedence.

Now consider these simple playbooks. In the first one, we’ll set a fact (variable) and then print it out:

NX-OS Forwarding Constructs For VXLAN/EVPN

In this post we will look at the forwarding constructs in NX-OS in the context of VXLAN and EVPN. Having knowledge of the forwarding constructs helps both with understanding of the protocols, but also to assist in troubleshooting. BRKDCN-3040 from Cisco Live has a nice overview of the components involved:

There are components that are platform independent (PI) and platform dependent (PD). Below I’ll explain what each component does:

  • ARP – Information from ARP requests/responses is needed to build adjacencies. The information learned from ARP is used to populate IP address field in RT2 and hence also to populate the ARP suppression cache.
  • IPv6 ND – ND fills the role of ARP, but for IPv6.
  • Adjacency Manager – Resolves directly attached hosts MAC addresses.
  • Host Mobility Manager – Tracks the endpoints and their movements.
  • L2FM – The Layer2 Forwarding Manager. A platform dependent component that programs ASICs for L2 forwarding. Keeps track of MAC addresses, their placement and moves, and synchronizes this information across ASICS, line cards, and vPC peers when vPC is in use.
  • MFDM – Multicast Forwarding Database Manager. A platform dependent component that programs ASICs with information to perform multicast forwarding.
  • L2RIB – The component that handles Continue reading

BGP Labs: Override Neighbor AS Number in AS Path

When I described the need to turn off the BGP AS-path loop prevention logic in scenarios where a Service Provider expects a customer to reuse the same AS number across multiple sites, someone quipped, “but that should be fixed by the Service Provider, not offloaded to the customer.

Not surprisingly, there’s a nerd knob for that (AS override), and you can practice it in the next BGP lab exercise: Fix AS-Path in Environments Reusing BGP AS Numbers.

BGP Labs: Override Neighbor AS Number in AS Path

When I described the need to turn off the BGP AS-path loop prevention logic in scenarios where a Service Provider expects a customer to reuse the same AS number across multiple sites, someone quipped, “but that should be fixed by the Service Provider, not offloaded to the customer.

Not surprisingly, there’s a nerd knob for that (AS override), and you can practice it in the next BGP lab exercise: Fix AS-Path in Environments Reusing BGP AS Numbers.

With Vista, TACC Now Has Three Paths To Its Future Horizon Supercomputer

The national supercomputing centers in the United States, Europe, and China are not only rich enough to build very powerful machines, but they are rich enough, thanks to their national governments, to underwrite and support multiple and somewhat incompatible architectures to hedge their bets and mitigate their risk.

With Vista, TACC Now Has Three Paths To Its Future Horizon Supercomputer was written by Timothy Prickett Morgan at The Next Platform.

Tech Bytes: Building An Automation-Ready Service Catalog With NetOrca (Sponsored)

Let’s say you’ve built a set of automations for your network infrastructure, and now you want teams or departments within your organization to use those automations. Our Tech Bytes sponsor NetOrca offers a service catalog that provides a simple front-end to make it easy for internal customers to come and consume those capabilities you’ve worked... Read more »

NB464: Juniper Begins AI Push Into The Data Center; VMware Customers Confront Higher Prices

This week we discuss new products from Juniper including synthetic testing software for its Mist wireless networks and its first step toward integrating its Apstra data center software with AI. VMware clarifies its product strategy as customers face rising prices, and undersea cables in the Red Sea face potential threats. Nokia and Chinese mobile device... Read more »

VPP Python API

VPP

About this series

Ever since I first saw VPP - the Vector Packet Processor - I have been deeply impressed with its performance and versatility. For those of us who have used Cisco IOS/XR devices, like the classic ASR (aggregation service router), VPP will look and feel quite familiar as many of the approaches are shared between the two.

You’ll hear me talk about VPP being API centric, with no configuration persistence, and that’s by design. However, there is this also a CLI utility called vppctl, right, so what gives? In truth, the CLI is used a lot by folks to configure their dataplane, but it really was always meant to be a debug utility. There’s a whole wealth of programmability that is not exposed via the CLI at all, and the VPP community develops and maintains an elaborate set of tools to allow external programs to (re)configure the dataplane. One such tool is my own [vppcfg] which takes a YAML specification that describes the dataplane configuration, and applies it safely to a running VPP instance.

Introduction

In case you’re interested in writing your own automation, this article is for you! I’ll provide a deep dive into Continue reading

HN718: Prisma SASE Gets Clever With TCP For Better App And User Experiences (Sponsored)

Remote and hybrid work means network engineers have to grapple with lossy residential networks such as home wireless that your work-from-home folks are using to access company resources. Their Wi-Fi sucks, and so their use of corporate resources sucks. Sure, you’ve got them plumbed into a SASE fabric, but that doesn’t fix their user experience... Read more »

The Tough Road Still Ahead For Intel In The Datacenter

A few years back, when Intel went up on the rocks with its CPU and GPU designs largely because its chip research and manufacturing did not keep pace with the manufacturing and packaging advances made by foundry rival Taiwan Semiconductor Manufacturing Co, we said that we were rapidly moving towards a world where Intel might have 40 percent of the CPU market, AMD might have 40 percent, and Arm and RISC-V would fight over the remaining 19 percent and 1 percent remaining for other exotic datacenter compute engine chippery.

The Tough Road Still Ahead For Intel In The Datacenter was written by Timothy Prickett Morgan at The Next Platform.