Estimated reading time: 5 mins.
Automation (15%)
Interpret basic Python components and scripts
Basic Python Components:
- Data Types: Understand common data types such as integers (int), floats (float), strings (str), lists (list), and dictionaries (dict).
- Control Structures: Master basic control structures, including conditional statements (if-else) and loops (for, while).
- Functions: Learn how to define and call functions, and understand the use of parameters and return values.
- Modules and Packages: Know how to import and use Python's built-in modules and third-party libraries like
os
,sys
, andjson
.
Script Interpretation:
- Comments: Understand the role of comments in scripts to improve code readability.
- Variables: Recognize and understand the definition and usage of variables in scripts.
- Exception Handling: Learn the basics of exception handling with try-except blocks.
Construct valid JSON-encoded files
Basic JSON Concepts:
- Definition: Understand that JSON (JavaScript Object Notation) is a lightweight data exchange format that is easy for humans to read and write, as well as for machines to parse and generate.
- Data Structure: Understand basic JSON data structures, including objects (key-value pairs) and arrays (lists).
Building Valid JSON Files:
- Syntax: Be familiar with JSON syntax rules, such as using double quotes and commas for separation.
- Validation Tools: Use online tools or Python libraries like
json
to validate the correctness of JSON files.
Describe the high-level principles and benefits of a data modeling language, such as YANG
Data Modeling Language:
- Definition: Understand that a data modeling language, such as YANG (Yet Another Next Generation), is used to define configuration and state data models for network devices and services.
- Basic Concepts: Learn key concepts of YANG, such as modules, leaf nodes, containers, and lists.
High-Level Principles and Benefits:
- Consistency: Provides a standardized way to describe device configurations and states, ensuring consistency across devices and vendors.
- Scalability: Allows for modular design, enabling data models to be extended as needed.
- Automation: Supports automation tools and protocols like NETCONF and RESTCONF, simplifying configuration and management.
Describe APIs for Cisco DNA Center and vManage
Cisco DNA Center API:
- Functionality: Understand that Cisco DNA Center provides APIs for tasks such as device configuration, monitoring, troubleshooting, and software upgrades.
- API Types: Be familiar with basic usage of REST APIs and WebSocket APIs.
vManage API:
- Functionality: Understand that Cisco vManage provides APIs for managing and configuring SD-WAN environments, including device management, template configuration, and policy application.
- API Types: Be familiar with basic usage of REST APIs.
Interpret REST API response codes and results in payload using Cisco DNA Center and RESTCONF
REST API Response Codes:
- HTTP Status Codes: Be familiar with common HTTP status codes and their meanings, such as 200 (OK), 201 (Created), 400 (Bad Request), 401 (Unauthorized), 404 (Not Found), and 500 (Internal Server Error).
Parsing Response Payload:
- JSON Format: Understand that REST API responses are typically in JSON format, and be able to parse and interpret the data in the JSON payload.
Construct an EEM applet to automate configuration, troubleshooting, or data collection
EEM (Embedded Event Manager):
- Basic Concepts: Understand that EEM is a feature on Cisco devices that automates predefined actions in response to network events.
- Components: Master the basic components of an EEM script, including event detection, operations, and actions.
Configuration and Examples:
- Event Detection: Configure EEM to monitor specific events, such as interface status changes or log messages.
- Actions: Define actions for EEM to execute when an event is detected, such as sending notifications, collecting data, or making configuration changes.
Compare agent vs. agentless orchestration tools, such as Chef, Puppet, Ansible, and SaltStack
Basic Concepts:
- Agent-based Tools: Tools like Chef and Puppet require agent software to be installed on managed nodes.
- Agentless Tools: Tools like Ansible and SaltStack do not require agent software on managed nodes and typically manage them via SSH or other protocols.
Comparison:
- Deployment Complexity: Agentless tools are often easier to deploy and maintain since they do not require installing and managing agents on every node.
- Real-Time Capabilities: Agent-based tools may provide more real-time management and monitoring since agents can run continuously and report status.
- Performance and Scalability: Consider the performance and scalability of each tool in large environments and their support for different platforms.
Example Comparisons:
-
Chef:
- Agent-based, requiring Chef clients on each managed node.
- Suitable for complex configuration management and automation tasks.
-
Puppet:
- Agent-based, requiring Puppet agents on each managed node.
- Offers rich configuration management features and modules.
-
Ansible:
- Agentless, managed via SSH.
- Easy to deploy, suitable for quick configurations and temporary tasks.
-
SaltStack:
- Supports both agent-based and agentless modes.
- Offers flexible configuration and management options.
References:
https://www.cisco.com/c/en/us/products/ios-nx-os-software/ios-embedded-event-manager-eem/index.html
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes