Introduction |
|
xviii | |
Section I Getting Started with Network Programmability |
|
|
Chapter 1 Introduction: Why Network Programmability |
|
|
1 | (12) |
|
What Is Network Programmability |
|
|
3 | (8) |
|
Network Programmability Benefits |
|
|
4 | (1) |
|
|
4 | (1) |
|
Network Innovation with Programmability |
|
|
4 | (2) |
|
Cloud, SDN, and Network Programmability |
|
|
6 | (2) |
|
|
8 | (1) |
|
Is Programmability a New Idea? |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
11 | (2) |
|
Chapter 2 Foundational Skills |
|
|
13 | (54) |
|
Introduction to Software Development |
|
|
13 | (53) |
|
Common Constructs-Variables, Flow Control, Functions, and Objects |
|
|
15 | (1) |
|
|
15 | (2) |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
A Basic Introduction to Python |
|
|
20 | (2) |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
24 | (1) |
|
|
25 | (1) |
|
|
26 | (2) |
|
|
28 | (1) |
|
|
29 | (1) |
|
|
30 | (1) |
|
Installing Python Libraries |
|
|
30 | (1) |
|
|
31 | (1) |
|
Using Common Python Libraries |
|
|
31 | (6) |
|
|
37 | (1) |
|
|
37 | (1) |
|
Web Technologies-Data Formatting |
|
|
38 | (1) |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
40 | (1) |
|
|
40 | (3) |
|
|
43 | (2) |
|
Basic Introduction to Version Control, Git, and GitHub |
|
|
45 | (2) |
|
|
47 | (2) |
|
Creating and Editing Source Code |
|
|
49 | (1) |
|
Getting Started with PyCharm |
|
|
50 | (3) |
|
Writing Code in PyCharm-Get the Weather |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (2) |
|
|
58 | (1) |
|
|
59 | (2) |
|
|
61 | (2) |
|
Linux File System and Permissions |
|
|
63 | (1) |
|
|
64 | (1) |
|
Installing Applications on Linux |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
Section II Cisco Programmable Data Center |
|
|
Chapter 3 Next-Generation Cisco Data Center Networking |
|
|
67 | (16) |
|
Cisco Application-Centric Infrastructure (ACI) |
|
|
70 | (4) |
|
|
74 | (2) |
|
Use Case-Nexus Data Broker |
|
|
75 | (1) |
|
Evolution of Data Center Network Architecture |
|
|
76 | (4) |
|
Cisco Data Center Network Controllers |
|
|
80 | (2) |
|
|
80 | (1) |
|
Virtual Topology System (VTS) |
|
|
81 | (1) |
|
|
81 | (1) |
|
|
82 | (1) |
|
Chapter 4 On-Box Programmability and Automation with Cisco Nexus NX-OS |
|
|
83 | (42) |
|
Open NX-OS Automation-Bootstrap and Provisioning |
|
|
83 | (5) |
|
|
83 | (4) |
|
|
87 | (1) |
|
|
87 | (1) |
|
|
88 | (1) |
|
|
88 | (10) |
|
|
89 | (1) |
|
Bash Variables, Conditions, and Loops |
|
|
89 | (1) |
|
|
90 | (1) |
|
Bash Conditions and Flow Control |
|
|
91 | (3) |
|
Bash Redirection and Pipes |
|
|
94 | (2) |
|
Working with Text in Bash |
|
|
96 | (2) |
|
|
98 | (1) |
|
|
99 | (4) |
|
|
101 | (1) |
|
|
101 | (2) |
|
|
103 | (3) |
|
Run a Bash Script at Startup |
|
|
103 | (3) |
|
Bash Example-Configure NTP Servers at boot |
|
|
106 | (1) |
|
|
106 | (12) |
|
Network Access in Guestshell |
|
|
109 | (1) |
|
Installing Applications in Guestshell |
|
|
110 | (1) |
|
Puppet Agent Installation in Guestshell |
|
|
111 | (1) |
|
NMap Installation in Guestshell |
|
|
111 | (1) |
|
Embedded Nexus Data Broker |
|
|
111 | (1) |
|
Nexus Embedded Event Manager |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
113 | (2) |
|
Using the NX-OS Python CLI Library |
|
|
115 | (1) |
|
Using NX-OS Cisco Python Library |
|
|
116 | (2) |
|
|
118 | (1) |
|
|
118 | (1) |
|
On-Box Python-Use Cases and Examples |
|
|
118 | (6) |
|
|
121 | (3) |
|
|
124 | (1) |
|
Chapter 5 Off-Box Programmability and Automation with Cisco Nexus NX-OS |
|
|
125 | (34) |
|
|
125 | (33) |
|
|
125 | (1) |
|
|
126 | (1) |
|
|
126 | (1) |
|
|
127 | (2) |
|
|
129 | (1) |
|
Configuring an IP Address with Python and NX-API |
|
|
130 | (1) |
|
NX-API REST: An Object-Oriented Data Model |
|
|
131 | (2) |
|
NX-API REST Object Model Data |
|
|
133 | (3) |
|
Authenticating to NX-API (nxapi_auth cookie) |
|
|
136 | (2) |
|
Changing NX-API Objects Data via Postman |
|
|
138 | (2) |
|
Modifying NX-API Objects Data via Python |
|
|
140 | (3) |
|
NX-API Event Subscription |
|
|
143 | (3) |
|
|
146 | (1) |
|
|
146 | (2) |
|
NXTool Kit BGP Configuration |
|
|
148 | (3) |
|
Automation and DevOps Tools |
|
|
151 | (1) |
|
|
152 | (1) |
|
|
153 | (1) |
|
|
154 | (3) |
|
|
157 | (1) |
|
|
158 | (1) |
|
|
158 | (1) |
|
Chapter 6 Network Programmability with Cisco ACI |
|
|
159 | (56) |
|
|
160 | (9) |
|
|
161 | (1) |
|
|
162 | (1) |
|
|
162 | (4) |
|
|
166 | (1) |
|
Python Exceptions Handling |
|
|
166 | (3) |
|
|
169 | (5) |
|
ACI Management Information Model |
|
|
169 | (1) |
|
|
170 | (3) |
|
|
173 | (1) |
|
|
174 | (1) |
|
|
174 | (39) |
|
|
176 | (2) |
|
|
178 | (1) |
|
|
178 | (1) |
|
|
179 | (3) |
|
APIC Object Store Browser (Visore) |
|
|
182 | (3) |
|
|
185 | (1) |
|
Using Python to Authenticate to APIC |
|
|
186 | (2) |
|
Using Postman to Automate APIC Configurations |
|
|
188 | (1) |
|
|
188 | (1) |
|
Creating New Postman Calls |
|
|
189 | (3) |
|
Programmability Using the APIC RESTful API |
|
|
192 | (4) |
|
|
196 | (2) |
|
|
198 | (2) |
|
|
200 | (2) |
|
|
202 | (2) |
|
Example Cobra SDK-Creating a Complete Tenant Configuration |
|
|
204 | (3) |
|
APIC REST Python Adapter (Arya) |
|
|
207 | (1) |
|
|
208 | (3) |
|
APIC Automation with UCS Director |
|
|
211 | (2) |
|
|
213 | (2) |
Section III Cisco Programmable Campus and WAN |
|
|
Chapter 7 On-Box Automation and Operations Tools |
|
|
215 | (40) |
|
|
216 | (1) |
|
|
216 | (4) |
|
Enabling AutoSmart Ports on a Cisco Catalyst Switch |
|
|
217 | (3) |
|
|
220 | (7) |
|
Enabling AutoConf on a Cisco Catalyst Switch |
|
|
222 | (2) |
|
Modifying a Built-in Template |
|
|
224 | (3) |
|
|
227 | (3) |
|
Enabling Auto Security on a Cisco Catalyst Switch |
|
|
228 | (2) |
|
Quality of Service for Campus Architectures |
|
|
230 | (6) |
|
AutoQoS on Campus LAN Devices |
|
|
230 | (1) |
|
Enabling AutoQoS on a Cisco Catalyst Switch |
|
|
231 | (2) |
|
AutoQoS on Campus WAN Devices |
|
|
233 | (1) |
|
Enabling AutoQoS on a Cisco ISR Router |
|
|
234 | (2) |
|
Automating Management and Monitoring Tasks |
|
|
236 | (17) |
|
|
236 | (1) |
|
Enabling Smart Call Home on an Cisco Catalyst Switch |
|
|
237 | (6) |
|
|
243 | (3) |
|
Embedded Event Manager (EEM) |
|
|
246 | (1) |
|
|
246 | (5) |
|
|
251 | (2) |
|
|
253 | (1) |
|
|
253 | (2) |
|
Chapter 8 Network Automation Tools for Campus Environments |
|
|
255 | (48) |
|
Data Models and Supporting Protocols |
|
|
256 | (7) |
|
|
256 | (2) |
|
|
258 | (1) |
|
|
259 | (4) |
|
Application Policy Infrastructure Controller Enterprise Module (APIC-EM) |
|
|
263 | (16) |
|
|
263 | (1) |
|
|
264 | (1) |
|
Intelligent WAN (IWAN) Application |
|
|
264 | (5) |
|
Plug and Play (PnP) Application |
|
|
269 | (7) |
|
|
276 | (3) |
|
Additional APIC-EM Features |
|
|
279 | (9) |
|
|
279 | (2) |
|
|
281 | (2) |
|
Easy Quality of Service (Easy QoS) |
|
|
283 | (2) |
|
|
285 | (1) |
|
|
286 | (2) |
|
APIC-EM Programmability Examples Using Postman |
|
|
288 | (9) |
|
|
288 | (3) |
|
|
291 | (1) |
|
|
292 | (2) |
|
|
294 | (2) |
|
|
296 | (1) |
|
APIC-EM Programmability Examples Using Python |
|
|
297 | (5) |
|
|
297 | (2) |
|
|
299 | (3) |
|
|
302 | (1) |
|
Chapter 9 Piecing It All Together |
|
|
303 | (4) |
Index |
|
307 | |