WEBVTT

1
00:00:00.120 --> 00:00:02.279
<v Speaker 1>Welcome to the deep dive. We're here to cut through

2
00:00:02.319 --> 00:00:05.000
<v Speaker 1>the noise and get straight to what matters. And today, Wow,

3
00:00:05.040 --> 00:00:07.679
<v Speaker 1>we're jumping into a really big shift happening right now

4
00:00:07.679 --> 00:00:12.599
<v Speaker 1>in it specifically network engineering. The old roles, the way

5
00:00:12.599 --> 00:00:17.079
<v Speaker 1>things were always done, it's all changing and changing really fast.

6
00:00:17.239 --> 00:00:19.359
<v Speaker 1>So our mission today is basically to give you a

7
00:00:19.399 --> 00:00:22.879
<v Speaker 1>shortcut a way to understand this whole transformation. We're looking

8
00:00:22.879 --> 00:00:25.640
<v Speaker 1>at how Python Linux are becoming well essential tools for

9
00:00:25.679 --> 00:00:29.399
<v Speaker 1>automating networks. We're drawing on insights from introduction to Python

10
00:00:29.440 --> 00:00:32.359
<v Speaker 1>network automation and you know, other solid sources. Think of

11
00:00:32.399 --> 00:00:35.799
<v Speaker 1>this as your guide to the skills, the mindset, and yeah,

12
00:00:35.799 --> 00:00:37.840
<v Speaker 1>the practical stuff you need to become what people are

13
00:00:37.840 --> 00:00:40.880
<v Speaker 1>calling a hybrid engineer. Okay, so let's unpack this. Think

14
00:00:40.920 --> 00:00:43.920
<v Speaker 1>back maybe ten years, maybe a bit more, the traditional

15
00:00:43.920 --> 00:00:46.119
<v Speaker 1>network engineer role. What did that look like. You were

16
00:00:46.159 --> 00:00:49.759
<v Speaker 1>probably you know, knee deep in installing kit, configuring lands wands,

17
00:00:50.079 --> 00:00:53.280
<v Speaker 1>a real master of OSPF, e I, g RP, BGP,

18
00:00:53.359 --> 00:00:56.159
<v Speaker 1>all that good stuff. Your world was pretty much OSI

19
00:00:56.280 --> 00:01:00.240
<v Speaker 1>layers one through four, right happy in that specific bubble.

20
00:01:00.039 --> 00:01:02.119
<v Speaker 2>Yeah, definitely. And Cisco Systems, I mean they were the

21
00:01:02.200 --> 00:01:04.560
<v Speaker 2>name the one stop shop for pretty much everything network

22
00:01:04.599 --> 00:01:07.799
<v Speaker 2>related for a long long time. Absolutely, but it's it's

23
00:01:07.879 --> 00:01:10.599
<v Speaker 2>fascinating how quickly things started to shift. You had these

24
00:01:10.640 --> 00:01:16.439
<v Speaker 2>disruptive forces appearing. Virtualization started getting big software to define

25
00:01:16.439 --> 00:01:19.680
<v Speaker 2>networking SDN, those concepts started bubbling up, and then for

26
00:01:19.719 --> 00:01:23.280
<v Speaker 2>some open source tools really took off. Now automation itself,

27
00:01:23.519 --> 00:01:25.519
<v Speaker 2>I mean that's not new, right, goes way back to

28
00:01:25.560 --> 00:01:29.560
<v Speaker 2>the Industrial Revolution, nineteen hundred stuff. But today, yeah, it's

29
00:01:29.599 --> 00:01:34.400
<v Speaker 2>the hot topic, not just networking, but security, data center, cloud,

30
00:01:34.560 --> 00:01:36.519
<v Speaker 2>you name it. It's fundamental now.

31
00:01:36.519 --> 00:01:39.239
<v Speaker 1>Yeah, it really is. And here's something our sources really

32
00:01:39.359 --> 00:01:41.920
<v Speaker 1>drive home. Kind of a stark reality. If you're just

33
00:01:42.000 --> 00:01:45.439
<v Speaker 1>relying on let's say, passive learning in this market, the

34
00:01:45.480 --> 00:01:48.159
<v Speaker 1>future looks a bit grim. It feels like history repeating itself.

35
00:01:48.280 --> 00:01:52.040
<v Speaker 1>You know, adapt or well or get left behind. Yeah, exactly.

36
00:01:52.359 --> 00:01:54.719
<v Speaker 1>And the core change is that network devices themselves are

37
00:01:54.760 --> 00:01:58.079
<v Speaker 1>moving from physical boxes to virtual things. And here's the kicker.

38
00:01:58.480 --> 00:02:03.439
<v Speaker 1>They're increasingly controlled by AP application programming interfaces. Think about

39
00:02:03.560 --> 00:02:08.120
<v Speaker 1>VMware's NSX or Cisco's ACI. These aren't just products. They

40
00:02:08.159 --> 00:02:09.599
<v Speaker 1>show this massive shift in.

41
00:02:09.639 --> 00:02:13.599
<v Speaker 2>Architecture precisely and That's exactly why this idea of a

42
00:02:13.680 --> 00:02:16.639
<v Speaker 2>hybrid engineer isn't just like a nice to have anymore.

43
00:02:16.759 --> 00:02:19.680
<v Speaker 2>It's becoming essential. We're talking about people who, yes, have

44
00:02:19.719 --> 00:02:22.560
<v Speaker 2>their deep knowledge in their main areas a networking, but

45
00:02:22.599 --> 00:02:25.080
<v Speaker 2>then they stretch, they build skills in other vital areas

46
00:02:25.240 --> 00:02:28.879
<v Speaker 2>like Linux and coding, Python, maybe go. It creates the

47
00:02:28.919 --> 00:02:33.639
<v Speaker 2>sort of T shaped knowledge profile, deep expertise but broad

48
00:02:33.680 --> 00:02:35.120
<v Speaker 2>adaptability T shaped.

49
00:02:35.199 --> 00:02:37.080
<v Speaker 1>I like that. It paints a good picture. Okay, so

50
00:02:37.159 --> 00:02:39.120
<v Speaker 1>let's focus on the tool that seems to be at

51
00:02:39.159 --> 00:02:42.719
<v Speaker 1>the absolute center of this. Python. Its popularity has just exploded.

52
00:02:42.759 --> 00:02:45.639
<v Speaker 1>I mean some reports show at overtaking Java, JavaScript and

53
00:02:45.680 --> 00:02:49.280
<v Speaker 1>developer preference. From your perspective, what is it about Python

54
00:02:49.319 --> 00:02:52.840
<v Speaker 1>that makes it the go to language for network automation.

55
00:02:53.080 --> 00:02:56.280
<v Speaker 2>Well, it's a combination of things. Really. Python hits this

56
00:02:56.360 --> 00:03:00.639
<v Speaker 2>sweet spot between being simple enough to get started but

57
00:03:00.800 --> 00:03:04.400
<v Speaker 2>powerful enough to do complex things. It's got that reputation

58
00:03:04.479 --> 00:03:07.159
<v Speaker 2>for a low barrier to entry, right, anyone can basically

59
00:03:07.199 --> 00:03:10.719
<v Speaker 2>start learning. But and this is important, there's a misconception

60
00:03:10.800 --> 00:03:16.439
<v Speaker 2>there easy to start, yes, truly proficient that takes real persistence, passion,

61
00:03:16.560 --> 00:03:20.439
<v Speaker 2>Even you can't just watch videos passively. You need projects,

62
00:03:20.719 --> 00:03:23.240
<v Speaker 2>you need real problems you want to solve with code.

63
00:03:23.479 --> 00:03:26.759
<v Speaker 2>That's what keeps you going because fundamentally automation means writing

64
00:03:26.800 --> 00:03:30.000
<v Speaker 2>code lines of instructions. AI is amazing, but it's not

65
00:03:30.120 --> 00:03:32.520
<v Speaker 2>yet at the point where it can just replicate the

66
00:03:32.520 --> 00:03:35.759
<v Speaker 2>intuition and experience of a seasoned network engineer. You still

67
00:03:35.800 --> 00:03:36.439
<v Speaker 2>need the logic.

68
00:03:36.680 --> 00:03:39.560
<v Speaker 1>That's a really critical point. So the human understanding the

69
00:03:39.599 --> 00:03:42.520
<v Speaker 1>logic crafting that's still key even with AI coming along.

70
00:03:42.560 --> 00:03:46.680
<v Speaker 1>It's about using code to solve problems intelligently exactly. So

71
00:03:47.120 --> 00:03:49.759
<v Speaker 1>to do that you need Python's building blocks. What are

72
00:03:49.800 --> 00:03:52.039
<v Speaker 1>some of those core concepts that really give a network

73
00:03:52.080 --> 00:03:53.439
<v Speaker 1>engineer automation power.

74
00:03:53.560 --> 00:03:55.719
<v Speaker 2>Okay, think of it this way. Python is how you

75
00:03:55.759 --> 00:03:58.039
<v Speaker 2>talk to your network now and when you get data

76
00:03:58.080 --> 00:04:00.960
<v Speaker 2>back from devices. It comes in different shait papes for

77
00:04:01.080 --> 00:04:05.560
<v Speaker 2>network tasks. Honestly, two data structures are your absolute work courses,

78
00:04:06.879 --> 00:04:08.000
<v Speaker 2>lists and dictionaries.

79
00:04:08.039 --> 00:04:09.039
<v Speaker 1>Lists and dictionaries.

80
00:04:09.280 --> 00:04:11.759
<v Speaker 2>A list is perfect when you need an ordered sequence,

81
00:04:11.919 --> 00:04:14.599
<v Speaker 2>like say, all the interface names on a switch, just

82
00:04:14.599 --> 00:04:18.199
<v Speaker 2>a simple list. A dictionary, though, is perfect for configuration.

83
00:04:18.720 --> 00:04:21.480
<v Speaker 2>You have a key like host name and a value

84
00:04:21.519 --> 00:04:24.800
<v Speaker 2>like rooter one or lan ten, name is the key,

85
00:04:25.160 --> 00:04:26.160
<v Speaker 2>sales is the value.

86
00:04:26.240 --> 00:04:28.199
<v Speaker 1>Ah key value pairs, got it right.

87
00:04:28.399 --> 00:04:31.680
<v Speaker 2>If you get comfortable manipulating those two lists and dictionaries,

88
00:04:31.800 --> 00:04:34.680
<v Speaker 2>you've honestly tackled maybe eighty percent of the data wrangling

89
00:04:34.680 --> 00:04:35.879
<v Speaker 2>you'll do in network automation.

90
00:04:36.079 --> 00:04:39.959
<v Speaker 1>That makes immediate sense. Lists for sequences, dictionaries for configs

91
00:04:40.120 --> 00:04:43.639
<v Speaker 1>very practical. What about making scripts smart? Making decisions?

92
00:04:43.879 --> 00:04:45.879
<v Speaker 2>Right, that's where your control statements and loops come in

93
00:04:46.040 --> 00:04:48.959
<v Speaker 2>super important. You've got if, l if and else that

94
00:04:49.079 --> 00:04:52.279
<v Speaker 2>lets your script decide, okay, if this interface status is down,

95
00:04:52.519 --> 00:04:54.279
<v Speaker 2>then I need to log it and maybe send an.

96
00:04:54.160 --> 00:04:56.160
<v Speaker 1>Alert conditional logic exactly.

97
00:04:56.319 --> 00:04:59.040
<v Speaker 2>And then you have loops like four loops and wild loops.

98
00:04:59.319 --> 00:05:03.560
<v Speaker 2>These are amazing for repetitive stuff. Imagine configuring the same

99
00:05:03.600 --> 00:05:08.240
<v Speaker 2>description on say fifty switch ports. A four loop handles

100
00:05:08.240 --> 00:05:11.279
<v Speaker 2>that beautifully. No more copy pasting fifty times.

101
00:05:11.399 --> 00:05:13.439
<v Speaker 1>Oh yeah, I can see the appeal there immediately.

102
00:05:13.680 --> 00:05:17.199
<v Speaker 2>These loops and conditions they make your scripts dynamic, They react,

103
00:05:17.279 --> 00:05:20.279
<v Speaker 2>they repeat intelligently. They're not just static command centers.

104
00:05:20.439 --> 00:05:23.720
<v Speaker 1>So building intelligence into the script itself, and as scripts

105
00:05:23.759 --> 00:05:27.240
<v Speaker 1>get bigger, organization must become pretty important. Right. That's modules

106
00:05:27.240 --> 00:05:28.240
<v Speaker 1>and packages.

107
00:05:27.879 --> 00:05:30.639
<v Speaker 2>Absolutely critical, especially if you're working in a team or

108
00:05:30.680 --> 00:05:32.680
<v Speaker 2>just want to reuse your code later. Think of a

109
00:05:32.680 --> 00:05:36.120
<v Speaker 2>module as basically just a single Python file, a dot

110
00:05:36.160 --> 00:05:38.759
<v Speaker 2>piy file. It might contain a few functions you wrote

111
00:05:38.759 --> 00:05:42.920
<v Speaker 2>for a specific task, like getting neighbor information from a router.

112
00:05:43.199 --> 00:05:43.560
<v Speaker 1>Okay.

113
00:05:43.680 --> 00:05:46.279
<v Speaker 2>A package is like a folder full of related modules.

114
00:05:46.480 --> 00:05:48.959
<v Speaker 2>It helps you structure bigger projects. Maybe you have a

115
00:05:48.959 --> 00:05:52.839
<v Speaker 2>package for Cisco iOS tasks, another for Juniper Geno's tasks.

116
00:05:53.160 --> 00:05:55.319
<v Speaker 2>Keeps things neat reusable.

117
00:05:54.839 --> 00:05:56.319
<v Speaker 1>Like libraries of your own tools.

118
00:05:56.560 --> 00:06:00.720
<v Speaker 2>Exactly. One more thing here, error handling. It absolutely must

119
00:06:00.759 --> 00:06:04.839
<v Speaker 2>learn how to use try and accept blocks. Networks are messy,

120
00:06:05.160 --> 00:06:08.839
<v Speaker 2>devices might not respond, files might be missing. Your script

121
00:06:08.839 --> 00:06:12.000
<v Speaker 2>needs to handle that gracefully with try accept, not just

122
00:06:12.120 --> 00:06:14.759
<v Speaker 2>you know, crash and burn makes your automation robust.

123
00:06:14.879 --> 00:06:18.560
<v Speaker 1>Robustness yeah, key for anything production. Okay, So Python gives

124
00:06:18.600 --> 00:06:21.560
<v Speaker 1>us the language, the data, structure, is the logic, the organization.

125
00:06:22.000 --> 00:06:25.600
<v Speaker 1>But where does this code actually live and run? That

126
00:06:25.720 --> 00:06:27.800
<v Speaker 1>leads us to Linux, doesn't it? And I have to

127
00:06:27.839 --> 00:06:30.600
<v Speaker 1>admit I really wish I'd taken Linux more seriously much

128
00:06:30.639 --> 00:06:33.439
<v Speaker 1>earlier in my career. It felt like this niche thing back.

129
00:06:33.319 --> 00:06:35.519
<v Speaker 2>Then you're definitely not alone there. It's a common regret

130
00:06:35.879 --> 00:06:39.279
<v Speaker 2>because while Windows, yeah, it dominates desktops, linuxes without a

131
00:06:39.319 --> 00:06:44.000
<v Speaker 2>doubt the default OS for serious enterprise level automation period.

132
00:06:44.079 --> 00:06:45.519
<v Speaker 1>Why is that? What makes it the go to?

133
00:06:45.839 --> 00:06:49.040
<v Speaker 2>It's a flexible, it's usually more performance for server tasks,

134
00:06:49.079 --> 00:06:51.759
<v Speaker 2>it's often more cost effective and has a really strong

135
00:06:51.800 --> 00:06:55.519
<v Speaker 2>security posture when configured right. It's just built for running

136
00:06:55.519 --> 00:06:59.079
<v Speaker 2>these kinds of back end services, automation engines, and yeah,

137
00:06:59.120 --> 00:07:00.000
<v Speaker 2>your Python scripts.

138
00:07:00.240 --> 00:07:03.519
<v Speaker 1>So for a network engineer who isn't aiming to become

139
00:07:03.560 --> 00:07:06.480
<v Speaker 1>a full time Linux ADMN, what are the must know

140
00:07:06.639 --> 00:07:08.600
<v Speaker 1>fundamentals the essentials?

141
00:07:08.759 --> 00:07:11.519
<v Speaker 2>Great question. You need to be comfortable on the command line,

142
00:07:11.639 --> 00:07:14.480
<v Speaker 2>that's number one. Knowing a bit about its U and

143
00:07:14.600 --> 00:07:18.800
<v Speaker 2>IX roots helps because many commands are the same across

144
00:07:18.839 --> 00:07:22.720
<v Speaker 2>different versions or distributions like a Buntu or cinos.

145
00:07:22.519 --> 00:07:24.759
<v Speaker 1>Right, the different flavors exactly.

146
00:07:24.319 --> 00:07:27.439
<v Speaker 2>You need to navigate the directory structures. Nowhere common config

147
00:07:27.519 --> 00:07:31.000
<v Speaker 2>files live because on Linux almost everything is a text file,

148
00:07:31.519 --> 00:07:33.399
<v Speaker 2>which means you need to get good with a command

149
00:07:33.439 --> 00:07:36.800
<v Speaker 2>line text editor like v or Nano. Essential for making

150
00:07:36.839 --> 00:07:38.639
<v Speaker 2>quick changes on a server without a GUI.

151
00:07:38.839 --> 00:07:41.639
<v Speaker 1>Okay, command line directories, text editors, what else.

152
00:07:41.639 --> 00:07:44.800
<v Speaker 2>Basic system checking and management commands things like l's t

153
00:07:44.920 --> 00:07:48.079
<v Speaker 2>CE files cat or less to view files, seep A copy,

154
00:07:48.199 --> 00:07:51.839
<v Speaker 2>MB to move or rename standard stuff. Then networking commands

155
00:07:51.839 --> 00:07:55.079
<v Speaker 2>are vital ep editors to see interface configs, replacing the

156
00:07:55.120 --> 00:07:57.759
<v Speaker 2>older if can fig and netstat is super useful for

157
00:07:57.800 --> 00:07:59.920
<v Speaker 2>seeing what ports are open, what services.

158
00:07:59.519 --> 00:08:02.279
<v Speaker 1>Are listening, checking connectivity listening ports yea.

159
00:08:02.639 --> 00:08:06.040
<v Speaker 2>And crucially, you'll likely need to install and manage some

160
00:08:06.120 --> 00:08:09.680
<v Speaker 2>basic network services on your Linux box to support your automation,

161
00:08:10.800 --> 00:08:14.040
<v Speaker 2>things like a TFTP server I mean an FTP server

162
00:08:14.199 --> 00:08:18.279
<v Speaker 2>using vsftpd and definitely an NTP server using Krony to

163
00:08:18.360 --> 00:08:21.519
<v Speaker 2>keep time synchronized. This lets you build your own little

164
00:08:21.839 --> 00:08:24.399
<v Speaker 2>all in one lab server, which is often what your

165
00:08:24.439 --> 00:08:27.519
<v Speaker 2>network devices will interact with for things like image transfers

166
00:08:27.600 --> 00:08:28.639
<v Speaker 2>or can fig backups.

167
00:08:29.000 --> 00:08:32.559
<v Speaker 1>So the goal isn't Linux mastery necessarily, not at all.

168
00:08:32.600 --> 00:08:35.600
<v Speaker 1>It's about having the confidence and the core skills to

169
00:08:35.679 --> 00:08:39.519
<v Speaker 1>operate that Linux environment where your automation runs right without

170
00:08:39.559 --> 00:08:40.279
<v Speaker 1>breaking things.

171
00:08:40.360 --> 00:08:42.639
<v Speaker 2>That's the sweet spot exactly. You need to be competent

172
00:08:42.759 --> 00:08:45.399
<v Speaker 2>enough to manage your automation platform effectively.

173
00:08:45.480 --> 00:08:48.399
<v Speaker 1>Okay, makes sense now, you the listener might be thinking

174
00:08:48.759 --> 00:08:51.480
<v Speaker 1>this sounds powerful, but theory is one thing, and our

175
00:08:51.519 --> 00:08:54.279
<v Speaker 1>sources really hammer this home. If you do not build

176
00:08:54.279 --> 00:08:57.200
<v Speaker 1>your lab yourself, then you will not know how everything works.

177
00:08:57.360 --> 00:09:00.799
<v Speaker 1>Just watching videos that passive learning it's not good enough.

178
00:09:00.879 --> 00:09:03.159
<v Speaker 1>You absolutely have to get your hands dirty build it yourself.

179
00:09:03.320 --> 00:09:06.639
<v Speaker 2>Couldn't agree more. And virtualization is your absolute best friend here.

180
00:09:06.720 --> 00:09:09.080
<v Speaker 2>It's how you build that playground. You need to understand

181
00:09:09.080 --> 00:09:12.320
<v Speaker 2>the basic types. There are Type one hypervisors, the bare

182
00:09:12.399 --> 00:09:15.600
<v Speaker 2>metal ones like VMware ESXi you find in data centers,

183
00:09:15.960 --> 00:09:18.159
<v Speaker 2>and then type two, which run like an application on

184
00:09:18.200 --> 00:09:22.440
<v Speaker 2>your desktop OS, perfect for labs and experiments. VMware Workstation

185
00:09:22.519 --> 00:09:26.279
<v Speaker 2>Pro is a really popular powerful Type two option lets

186
00:09:26.279 --> 00:09:28.200
<v Speaker 2>you build complex labs just on your own PC.

187
00:09:28.559 --> 00:09:31.600
<v Speaker 1>Okay, so workstation pro for the environment. What about the

188
00:09:31.600 --> 00:09:35.039
<v Speaker 1>network devices themselves? Can you run routers and switches virtually?

189
00:09:35.200 --> 00:09:38.200
<v Speaker 2>Absolutely? That's where tools like GNS three come in. Genius

190
00:09:38.200 --> 00:09:41.360
<v Speaker 2>theory is fantastic. It started with dynamips for emulating older

191
00:09:41.399 --> 00:09:44.159
<v Speaker 2>Cisco hardware, but now it's a full graphical environment. You

192
00:09:44.159 --> 00:09:47.240
<v Speaker 2>can load actual Cisco iOS images into it, older ones

193
00:09:47.240 --> 00:09:49.399
<v Speaker 2>like the twelve on one x train or newer virtual

194
00:09:49.440 --> 00:09:51.519
<v Speaker 2>images like the ones from Cisco Modeling Labs, the c

195
00:09:51.639 --> 00:09:54.120
<v Speaker 2>amount pe images for L two L three functionality.

196
00:09:54.159 --> 00:09:56.120
<v Speaker 1>So you're running real Cisco code.

197
00:09:55.799 --> 00:10:01.240
<v Speaker 2>Exactly real code, emulated hardware. You can graphically connect virtual routers, switches,

198
00:10:01.519 --> 00:10:06.080
<v Speaker 2>even little virtual PCs vpcs to test connectivity. You could

199
00:10:06.120 --> 00:10:09.600
<v Speaker 2>even bridge this virtual network to your actual PCs network

200
00:10:09.960 --> 00:10:13.320
<v Speaker 2>using things like Microsoft loop back adapters. It creates this

201
00:10:13.399 --> 00:10:15.679
<v Speaker 2>amazing self contained sandbox.

202
00:10:15.799 --> 00:10:19.559
<v Speaker 1>Wow. So this integrated lab environment running Linux, running GNS

203
00:10:19.600 --> 00:10:22.720
<v Speaker 1>three with virtual devices, that really sounds like the key.

204
00:10:22.759 --> 00:10:25.200
<v Speaker 1>It's the closest you can get to actually practice and

205
00:10:25.279 --> 00:10:29.799
<v Speaker 1>experience everything that occurs in the real network environment. Right, build, break, fix,

206
00:10:29.879 --> 00:10:31.600
<v Speaker 1>automate all safely, precisely.

207
00:10:31.879 --> 00:10:34.279
<v Speaker 2>It's where the Python knowledge, the Linux skills, it all

208
00:10:34.320 --> 00:10:37.320
<v Speaker 2>comes together in a practical way. It's indispensable for learning

209
00:10:37.320 --> 00:10:38.120
<v Speaker 2>this stuff properly.

210
00:10:38.159 --> 00:10:40.759
<v Speaker 1>Okay, let's pivot now to the real world application. How

211
00:10:40.759 --> 00:10:44.120
<v Speaker 1>does Python actually talk to network devices? Because let's face it,

212
00:10:44.159 --> 00:10:46.440
<v Speaker 1>even with APIs growing a ton of gear out there

213
00:10:46.440 --> 00:10:49.440
<v Speaker 1>still relies on the command line via telnet and SSH.

214
00:10:49.480 --> 00:10:52.440
<v Speaker 2>That's very true, and Python is excellent for automating those

215
00:10:52.440 --> 00:10:56.240
<v Speaker 2>interactions too. There are standard libraries like telnet live built in,

216
00:10:56.559 --> 00:10:59.559
<v Speaker 2>but more often you'll use more powerful third party libraries.

217
00:11:00.320 --> 00:11:02.679
<v Speaker 2>Is a popular one for SSH at a lower level.

218
00:11:02.960 --> 00:11:06.120
<v Speaker 2>And then there's Netmeko, which builds on paramco and is

219
00:11:06.159 --> 00:11:10.519
<v Speaker 2>specifically designed for network devices. It'd understand different vendor prompts, handles,

220
00:11:10.559 --> 00:11:12.360
<v Speaker 2>pagination makes life much.

221
00:11:12.240 --> 00:11:15.000
<v Speaker 1>Easier netnico Okay, so what can you do with.

222
00:11:14.960 --> 00:11:18.320
<v Speaker 2>These ah tons of repetitive tasks? Think about configuring the

223
00:11:18.320 --> 00:11:22.960
<v Speaker 2>same VLAN on say twenty different access switches. Instead of

224
00:11:22.960 --> 00:11:25.320
<v Speaker 2>logging into each one, you write a simple Python loop

225
00:11:25.399 --> 00:11:29.679
<v Speaker 2>using netmeico connect configure, disconnect next switch. Done in seconds.

226
00:11:29.720 --> 00:11:31.960
<v Speaker 1>That alone sounds like a huge time saver it is.

227
00:11:32.480 --> 00:11:35.600
<v Speaker 2>Or backing up configurations, schedule a Python script to log

228
00:11:35.600 --> 00:11:37.759
<v Speaker 2>into all your core devices every night and save the

229
00:11:37.799 --> 00:11:41.000
<v Speaker 2>running config to your Linux server via SEP or TFTP.

230
00:11:41.399 --> 00:11:44.200
<v Speaker 1>Nice. And what about security? You mentioned telnet earlier.

231
00:11:44.080 --> 00:11:46.240
<v Speaker 2>Yeah, this is a big one. Telnet is insecure, sends

232
00:11:46.240 --> 00:11:49.159
<v Speaker 2>passwords in clear text. You can write a Python script

233
00:11:49.159 --> 00:11:52.159
<v Speaker 2>to scan your network ranges, check if telnet is enabled

234
00:11:52.159 --> 00:11:55.480
<v Speaker 2>on devices and if it finds telnet open. Use Python

235
00:11:55.519 --> 00:11:58.559
<v Speaker 2>with netmeko again to log in via SSH, disable the

236
00:11:58.559 --> 00:12:01.840
<v Speaker 2>Telnet service and maybe be ensure SSH is properly configured.

237
00:12:01.879 --> 00:12:03.919
<v Speaker 2>It's automating security policy enforcement.

238
00:12:04.080 --> 00:12:09.039
<v Speaker 1>That's moving beyond convenience into really critical operational security, powerful stuff.

239
00:12:09.519 --> 00:12:12.120
<v Speaker 1>What about monitoring, keeping an eye on device health?

240
00:12:12.360 --> 00:12:17.000
<v Speaker 2>For that, SNNP is still king the Simple Network Management Protocol.

241
00:12:17.080 --> 00:12:19.919
<v Speaker 2>It's been around forever but is still widely used. You

242
00:12:20.000 --> 00:12:22.919
<v Speaker 2>need to grasp the basics the idea of polling, where

243
00:12:22.919 --> 00:12:27.200
<v Speaker 2>your management station asks devices for data versus traps, or

244
00:12:27.279 --> 00:12:29.879
<v Speaker 2>devices send alerts automatically if something bad happens.

245
00:12:29.919 --> 00:12:31.279
<v Speaker 1>Okay, polling versus traps.

246
00:12:31.519 --> 00:12:34.840
<v Speaker 2>In the terminology, SMI is the structure of management information,

247
00:12:34.879 --> 00:12:39.039
<v Speaker 2>how data is organized. The MIIB management information based of

248
00:12:39.080 --> 00:12:41.320
<v Speaker 2>like the database of things you can monitor on a device,

249
00:12:41.720 --> 00:12:45.639
<v Speaker 2>and crucially oid's object identifiers. These are like unique addresses

250
00:12:45.720 --> 00:12:48.840
<v Speaker 2>for specific pieces of data like one point three point

251
00:12:48.879 --> 00:12:50.879
<v Speaker 2>six two point one, put one to one point one

252
00:12:50.879 --> 00:12:54.519
<v Speaker 2>put one point one point one. Did is typically system

253
00:12:54.600 --> 00:12:58.159
<v Speaker 2>uptime or specific Cisco ID like one put through six

254
00:12:58.200 --> 00:13:00.360
<v Speaker 2>point four point nine and nine put one button on

255
00:13:01.039 --> 00:13:05.679
<v Speaker 2>one point five might be this five minute CPU load average.

256
00:13:05.720 --> 00:13:08.039
<v Speaker 1>There's a great Python module called pi sm it lets

257
00:13:08.039 --> 00:13:12.080
<v Speaker 1>you easily perform sn mp gt request to fetch specific OIDs,

258
00:13:12.399 --> 00:13:15.879
<v Speaker 1>or even SMMP set request change configuration, though that's less

259
00:13:15.879 --> 00:13:18.600
<v Speaker 1>common and needs care. You can also use command line

260
00:13:18.600 --> 00:13:21.320
<v Speaker 1>tools on Linux like simp walk to explore devices m

261
00:13:21.360 --> 00:13:23.000
<v Speaker 1>ib and find useful OIDs.

262
00:13:23.080 --> 00:13:25.360
<v Speaker 2>So give us a practical example. How could you use this?

263
00:13:25.480 --> 00:13:28.240
<v Speaker 1>Okay, imagine this. You write a Python script using pizmpm

264
00:13:28.279 --> 00:13:31.080
<v Speaker 1>to pull your main router's CPU utilization o ID every

265
00:13:31.080 --> 00:13:34.639
<v Speaker 1>few minutes using secure sm mpv three. The script checks

266
00:13:34.639 --> 00:13:38.000
<v Speaker 1>the return value if the CPU load goes above, say ninety.

267
00:13:37.720 --> 00:13:41.120
<v Speaker 2>Percent right, instead of just logging it. The script could

268
00:13:41.159 --> 00:13:43.919
<v Speaker 2>then use the twili o API, maybe running inside a

269
00:13:44.000 --> 00:13:46.799
<v Speaker 2>lightweight dock or container, send an SMS alert straight to

270
00:13:46.840 --> 00:13:47.759
<v Speaker 2>your phone.

271
00:13:47.480 --> 00:13:50.960
<v Speaker 1>Proactive alerting via text message that beats a three am

272
00:13:51.080 --> 00:13:52.360
<v Speaker 1>phone call waking you.

273
00:13:52.399 --> 00:13:55.600
<v Speaker 2>Up, doesn't it, jest. It's about getting ahead of problems.

274
00:13:55.840 --> 00:13:58.559
<v Speaker 2>It's efficiency, yes, but it's also about sanity.

275
00:13:58.720 --> 00:14:03.559
<v Speaker 1>Sanity definitely value and to make that check happen regularly automatically.

276
00:14:04.399 --> 00:14:06.519
<v Speaker 1>That's Linux's KRON again precisely.

277
00:14:06.879 --> 00:14:10.639
<v Speaker 2>Pron is the simple, super reliable Linux scheduler. You write

278
00:14:10.639 --> 00:14:12.799
<v Speaker 2>a kron tab entry that just says, run this Python

279
00:14:12.799 --> 00:14:15.759
<v Speaker 2>script every five minutes, set it and forget it. Your

280
00:14:15.799 --> 00:14:17.759
<v Speaker 2>monitoring is now automated and persistent.

281
00:14:17.840 --> 00:14:20.440
<v Speaker 1>Perfect. Now there are even more advanced tools out there too, right,

282
00:14:20.480 --> 00:14:21.759
<v Speaker 1>we should probably mention them briefly.

283
00:14:21.879 --> 00:14:25.840
<v Speaker 2>Yeah, definitely beyond direct scripting with netmko or piesapp, you'll

284
00:14:25.879 --> 00:14:28.960
<v Speaker 2>quickly run into tools like antsable. Ansable is huge for

285
00:14:29.039 --> 00:14:33.679
<v Speaker 2>configuration management. It's agentless, mainly uses SSH and you define

286
00:14:33.679 --> 00:14:37.600
<v Speaker 2>the desired state in simple yamo files called playbooks. Very

287
00:14:37.639 --> 00:14:41.559
<v Speaker 2>powerful for ensuring consistency across many devices. It has modules

288
00:14:41.559 --> 00:14:45.320
<v Speaker 2>like iOS facts to gather device info easily email playbooks.

289
00:14:45.399 --> 00:14:47.360
<v Speaker 1>Right, and Cisco has their own stuff too.

290
00:14:47.519 --> 00:14:51.519
<v Speaker 2>We do piats often used with its parsing library called Genie.

291
00:14:51.919 --> 00:14:55.440
<v Speaker 2>It's a Cisco endorsed Python framework really geared cords, network

292
00:14:55.480 --> 00:14:59.240
<v Speaker 2>testing and validation. You can use gene to parse complex

293
00:14:59.279 --> 00:15:03.240
<v Speaker 2>show command put like show version into structured Python data,

294
00:15:03.279 --> 00:15:06.360
<v Speaker 2>dictionaries and lists. Again makes it easy to grab say

295
00:15:06.399 --> 00:15:09.000
<v Speaker 2>the uptime or serial number. You can even export that

296
00:15:09.120 --> 00:15:11.679
<v Speaker 2>data to Excel, maybe visualize it with matt.

297
00:15:11.480 --> 00:15:15.320
<v Speaker 1>Plotlob data extraction and testing. Okay, and Docker you mentioned

298
00:15:15.320 --> 00:15:16.879
<v Speaker 1>for the SMS alert Right.

299
00:15:17.200 --> 00:15:20.639
<v Speaker 2>Docker isn't strictly automation, but it's containerization. It lets you

300
00:15:20.679 --> 00:15:24.279
<v Speaker 2>package your Python script and all its dependencies into a small,

301
00:15:24.360 --> 00:15:28.120
<v Speaker 2>isolated container. This ensures your script runs the same way everywhere,

302
00:15:28.120 --> 00:15:30.679
<v Speaker 2>whether it's on your laptop or a server. Great for

303
00:15:30.759 --> 00:15:34.720
<v Speaker 2>deploying small focused tools like monitoring scripts or alert handlers.

304
00:15:34.879 --> 00:15:39.360
<v Speaker 1>Okay, so we have scripting, monitoring, configuration, management, testing frameworks.

305
00:15:40.039 --> 00:15:42.200
<v Speaker 1>If we try to tile this together, where does it

306
00:15:42.279 --> 00:15:45.240
<v Speaker 1>really culminate. What's a complex, high value task that this

307
00:15:45.279 --> 00:15:46.159
<v Speaker 1>approach can tackle.

308
00:15:46.399 --> 00:15:48.279
<v Speaker 2>Well, if we connect this to the bigger picture, I

309
00:15:48.279 --> 00:15:51.799
<v Speaker 2>think one of the classic high stress tasks is manually

310
00:15:51.879 --> 00:15:55.840
<v Speaker 2>upgrading Cisco iOS software in a live production network. Think

311
00:15:55.879 --> 00:15:59.360
<v Speaker 2>about it, two four seven environment tight change windows, the

312
00:15:59.480 --> 00:16:03.559
<v Speaker 2>immense pressure not to cause an adage. There were distinct phases,

313
00:16:04.480 --> 00:16:07.840
<v Speaker 2>the pre checks, the actual upgrade, the critical post checks.

314
00:16:08.120 --> 00:16:10.440
<v Speaker 2>It's incredibly labor intensive and nerve wracking.

315
00:16:10.519 --> 00:16:13.360
<v Speaker 1>Oh absolutely, I've been there. It's stressful. So how can

316
00:16:13.399 --> 00:16:16.639
<v Speaker 1>Python help break down that labor intensive workflow?

317
00:16:16.879 --> 00:16:20.120
<v Speaker 2>This is where all the pieces come together beautifully, that complex,

318
00:16:20.159 --> 00:16:25.279
<v Speaker 2>stressful process. Python can turn it into manageable, automatable, modular steps.

319
00:16:25.720 --> 00:16:27.679
<v Speaker 2>You could have a Python script that first connects via

320
00:16:27.879 --> 00:16:30.879
<v Speaker 2>sash net miko to run pre checks. Is there enough

321
00:16:30.879 --> 00:16:33.600
<v Speaker 2>flash space for the new image. What's the current boot variable?

322
00:16:33.639 --> 00:16:34.480
<v Speaker 2>Save the current can.

323
00:16:34.360 --> 00:16:36.159
<v Speaker 1>Fig okay the verification stage.

324
00:16:36.200 --> 00:16:38.440
<v Speaker 2>Then another part of the script could securely transfer the

325
00:16:38.519 --> 00:16:42.440
<v Speaker 2>new iOS image using SEP or maybe TFTP from your

326
00:16:42.440 --> 00:16:45.919
<v Speaker 2>Linux server. It can even verify the MTFI hash of

327
00:16:45.960 --> 00:16:47.879
<v Speaker 2>the transferred file to ensure it wasn't.

328
00:16:47.720 --> 00:16:49.360
<v Speaker 1>Correct integrity checks nice.

329
00:16:49.519 --> 00:16:52.399
<v Speaker 2>Then configure the boot system variables to point to the

330
00:16:52.440 --> 00:16:56.879
<v Speaker 2>new image, save the config and then initiate the reload.

331
00:16:57.279 --> 00:16:58.679
<v Speaker 1>The point of no return.

332
00:16:58.440 --> 00:17:02.240
<v Speaker 2>Well hopefully not is after the device reboots. Your script

333
00:17:02.240 --> 00:17:04.680
<v Speaker 2>connects again to run post checks. Did it boot the

334
00:17:04.759 --> 00:17:07.960
<v Speaker 2>right image? Or the interfaces up? Can it? Pin key neighbors?

335
00:17:08.480 --> 00:17:11.200
<v Speaker 2>Is routing working all verified automatically?

336
00:17:11.279 --> 00:17:15.680
<v Speaker 1>Wow? Breaking that massive task down into automated, verifiable steps

337
00:17:15.759 --> 00:17:17.759
<v Speaker 1>that really highlights the power exactly.

338
00:17:17.799 --> 00:17:20.519
<v Speaker 2>It takes that high stress, error prone manual process and

339
00:17:20.559 --> 00:17:24.039
<v Speaker 2>makes it far more reliable, repeatable, and faster. This is

340
00:17:24.039 --> 00:17:27.240
<v Speaker 2>where all those Python basics, Linux skills, netmko s and

341
00:17:27.319 --> 00:17:30.240
<v Speaker 2>mp checks maybe they all converge to solve a really

342
00:17:30.279 --> 00:17:31.839
<v Speaker 2>significant operational.

343
00:17:31.440 --> 00:17:34.039
<v Speaker 1>Challenge that really crystallizes the goal, doesn't it. It's not

344
00:17:34.079 --> 00:17:36.720
<v Speaker 1>about kicking engineers out, not at all. It's about deeply

345
00:17:36.799 --> 00:17:40.720
<v Speaker 1>understanding what engineers do, their decision processes, their checks and balances,

346
00:17:41.160 --> 00:17:44.680
<v Speaker 1>and then building tools that amplify their effectiveness, tools that.

347
00:17:44.640 --> 00:17:47.920
<v Speaker 2>Make their work more efficient, way more accurate, and less

348
00:17:47.920 --> 00:17:53.079
<v Speaker 2>prone to simple human error during repetitive tasks. It fundamentally

349
00:17:53.079 --> 00:17:56.279
<v Speaker 2>allows engineers to scale their impact to do more work

350
00:17:56.400 --> 00:17:58.240
<v Speaker 2>using an application programming interface.

351
00:17:58.400 --> 00:18:02.200
<v Speaker 1>Essentially, they shift from being purely manual operators to being

352
00:18:02.319 --> 00:18:05.119
<v Speaker 1>the architects and overseers of intelligent automation.

353
00:18:05.319 --> 00:18:06.400
<v Speaker 2>That's a great way to put it.

354
00:18:06.559 --> 00:18:10.000
<v Speaker 1>Well, what a journey we've covered today. Seriously. We started

355
00:18:10.000 --> 00:18:13.400
<v Speaker 1>with this rapidly changing network engineering landscape, the absolute need

356
00:18:13.440 --> 00:18:16.000
<v Speaker 1>now to become this hybrid engineer. Then we dove into

357
00:18:16.039 --> 00:18:19.559
<v Speaker 1>Python basics, the core data types and logic needed, navigated

358
00:18:19.640 --> 00:18:23.000
<v Speaker 1>essential Linux skills for running our automation, talked about building

359
00:18:23.000 --> 00:18:26.240
<v Speaker 1>those crucial virtual labs with GNS three and VMware to

360
00:18:26.240 --> 00:18:29.000
<v Speaker 1>get hands on practice, and finally brought it all together

361
00:18:29.079 --> 00:18:33.559
<v Speaker 1>with real world automation using Python for SSH, SNMP, monitoring,

362
00:18:33.960 --> 00:18:37.160
<v Speaker 1>scheduling with Kron, and even tackling something as complex as

363
00:18:37.200 --> 00:18:40.359
<v Speaker 1>iOS upgrades. So what does this all really mean for

364
00:18:40.400 --> 00:18:41.599
<v Speaker 1>you listening right now?

365
00:18:41.799 --> 00:18:43.880
<v Speaker 3>I think the key takeaway is that making this transition

366
00:18:43.920 --> 00:18:46.960
<v Speaker 3>becoming that cross functional engineer with solid networking plus links

367
00:18:47.000 --> 00:18:49.160
<v Speaker 3>chops plus coding ability. It's not just a nice to

368
00:18:49.200 --> 00:18:50.920
<v Speaker 3>have for your CV anymore. It really feels like a

369
00:18:50.960 --> 00:18:54.160
<v Speaker 3>necessity now for staying relevant for career growth in this

370
00:18:54.240 --> 00:18:56.480
<v Speaker 3>IT world that's just shifting so quickly under our feet.

371
00:18:56.480 --> 00:18:58.920
<v Speaker 2>Absolutely, and maybe here's a final thought to leave you

372
00:18:58.960 --> 00:19:01.039
<v Speaker 2>with something to chew on. Take a hard look at

373
00:19:01.039 --> 00:19:04.400
<v Speaker 2>your own day to day work right now, what specific task,

374
00:19:04.480 --> 00:19:07.200
<v Speaker 2>even a small one, could you potentially automate using some

375
00:19:07.240 --> 00:19:10.240
<v Speaker 2>of these ideas, And then flip the question, Even with

376
00:19:10.319 --> 00:19:14.319
<v Speaker 2>that automation, what unique human insight, what critical thinking or

377
00:19:14.359 --> 00:19:17.440
<v Speaker 2>complex problem solving skill that you possess would still be

378
00:19:17.559 --> 00:19:21.079
<v Speaker 2>absolutely essential because the real power here, the future of

379
00:19:21.119 --> 00:19:25.400
<v Speaker 2>network programmability isn't just the raw automation. It's the intelligent

380
00:19:25.440 --> 00:19:28.519
<v Speaker 2>application of it, the smart processing and interpretation of the

381
00:19:28.599 --> 00:19:32.240
<v Speaker 2>data it provides, and that intelligence, that guidance that still

382
00:19:32.240 --> 00:19:34.279
<v Speaker 2>comes best from experienced engineers like you.

383
00:19:35.039 --> 00:19:38.480
<v Speaker 1>Powerful thoughts, indeed, focus on where you add unique human value.

384
00:19:38.880 --> 00:19:41.279
<v Speaker 1>Excellent point to end on. Thanks so much for joining

385
00:19:41.319 --> 00:19:43.720
<v Speaker 1>us on this deep dive. Until next time, keep learning,

386
00:19:43.920 --> 00:19:47.039
<v Speaker 1>keep exploring that automation potential and keep diving deep
