Arista ACE-S Automation (Foundations) study materials
Arista ACE-S Automation (Foundations) study resources

Arista ACE-S Automation (Foundations): Automation and Programmability Tooling

Arista ACE-S Automation (Foundations) · Work through your exam, one topic at a time.

All guide sections

Automation and Programmability Tooling

What the exam expects you to distinguish

Arista's programmability stack has several layers, and questions test whether you know which tool solves which problem.

  • eAPI - JSON-RPC over HTTP(S) to EOS. You send runCmds (CLI commands) or get/enable/config methods. It is synchronous request/response and returns JSON. Good for ad-hoc automation and for tools that speak HTTP.
  • pyeapi - a Python wrapper around eAPI. It gives you JSON output and connection management, but it is still CLI-driven underneath.
  • RESTCONF / gNMI / OpenConfig - model-driven interfaces. gNMI is the streaming telemetry and config protocol; OpenConfig provides vendor-neutral YANG models.
  • Ansible / Terraform / Python - orchestration and IaC layers that call the above.

Traps

  • eAPI is not model-driven. It executes CLI commands; the output is structured JSON but the interface is command-based, not YANG-based. A question that says "eAPI uses OpenConfig models" is wrong.
  • pyeapi is not a separate protocol. It wraps eAPI.
  • gNMI is for streaming telemetry and model-based config, not for arbitrary CLI execution.
  • Idempotency. Ansible modules and Terraform resources are expected to be idempotent; raw eAPI runCmds is not.

Worked example

To read interface counters from a switch in Python, you would use pyeapi: connect with pyeapi.connect_to("switch1"), then node.enable("show interfaces"). The same thing over raw HTTP is a POST to /command-api with {"jsonrpc":"2.0","method":"runCmds","params":{"cmds":["show interfaces"],"format":"json"}}. Knowing both shapes is the point.