Eliminate Script Chaos: How to Build & Share Automations at Scale with Itential

Let’s face it: automation isn’t always as smooth as we’d like. You start with a simple Python script or Ansible Playbook to tackle network requests faster. But soon, you’re drowning in questions:

  • How do I share this with my team?
  • Will everyone need to learn Python/Ansible?
  • Am I stuck maintaining every script forever?

Network automation often creates a divide between those who build automations and those who consume them. And bridging that gap can feel like a never-ending battle. That’s where Itential’s Automation Gateway steps in.

With Itential you can turn your scripts into services anyone can use — no coding knowledge or complex setups required. Automation builders can use any tool or language they prefer and create a service around it, while operators can securely run those automations without worrying about execution environments or dependencies.

Watch this on-demand webinar to see Rich and Peter will break down:

⚙️ The real-life chaos of trying to operationalize scripts (and how to fix it).
⚙️ Barriers to sharing automations and enabling operators to consume them.
⚙️ How builders can close the skills gap and scale automation efforts with Itential’s dynamic execution environment.
⚙️ A hands-on demo of Itential’s dynamic execution environment (IAG) and connecting to Itential Cloud for defining and sharing services directly from the CLI.

If you’ve ever been stuck juggling the “build vs. consume” challenge, this is for you. Let’s simplify your automation journey.

  • Demo Notes

    (So you can skip ahead, if you want.)

    00:00 Setting the Scene
    01:26 Challenges for Network Automation Engineers
    07:54 Challenges for Network Engineers & Operators
    12:35 The Chaos of Sharing Automations
    18:54 Demo: Builder Shares a Script without Itential
    29:18 Demo: Builder Shares a Script with Itential
    38:38 Demo: Using Itential Automation Gateway GUI to Run Automation Services
    44:50 Review of Itential Automation Gateway Architecture
    47:12 Free Trial & Wrap Up

  • View Transcript

    Rich Martin • 00:04

    Hello everyone, welcome to another Itential webinar. Today we are going to try to tackle the challenge of how to eliminate script chaos, and I’m rich Martin director of technical marketing, and today I am pleased and excited to have a colleague in front of me, Peter Spragata, Peter.

    Peter Sprygada • 00:21

    Give a moment to talk about yourself for maybe the one or two people who don’t already know you. Yeah, absolutely Rich. Thanks Thanks, and thanks for having me Let me join your your party here. So hi folks Peters forgot. I’m currently chief architect here at attention, which is a Fancy way that I can please nobody and then everybody else at the same time Now seriously, you know So my role here is to really focus on looking at our product portfolio and and really working to make sure that it is Aligned both in terms of where it’s going strategically and tactically as well as you know Making sure that customers it’s aligned with with customer use cases and what customers, you know Ultimately want to accomplish when they’re looking at their automation and orchestration goals. Yep. Fantastic. Thanks Peter and today’s topic Eliminating script chaos is really part of the output of your role here is to create products that that Hit head-on some of the challenges of our customers and our in our prospects, right? You know, it is. It absolutely is. You know, it’s a challenge that so many organizations are dealing with right now. And that is, you know, as organizations look to embrace initiatives around both automation and orchestration, we tend to see a lot of teams that are trying to make sense of this kind of this brave new world. You know, a lot of it is still happening organically. And because a lot of that happens organically, we tend to find that there’s a lot of chaos out there. Everything from, right, what do I build to how do I build it to where do I store it to how do I share it to how do I use it?

    Peter Sprygada • 02:04

    And the list goes just on and on and on and on. And so, you know, one of the things over the last couple of years we’ve really been focused on and thinking about our products is, you know, how can we bring technology to the market that actually allows organizations to gain better control over this chaos? We don’t want to stifle it, right, because within chaos is we find innovation and we want innovation. But we also need controlled innovation because we can’t afford meltdowns of the infrastructure.

    Rich Martin • 02:34

    Controlled chaos. I love it. So let’s talk a little bit about our demo today. And really, it’s a series that we want to step everyone through. But we’re starting off with the idea here that people probably start off in this chaos, right, when they get started. Maybe they don’t know what they don’t know. In this particular sense, we want to identify both builders and operators here, and I get to take the role of the operator because quite honestly, that’s where I came from. More networking than programmer background, so network engineers here.

    Rich Martin • 03:06

    But what about your persona here as the builder, Peter?

    Peter Sprygada • 03:09

    Yeah, absolutely. I’m going to take the persona of the builder and that’s that network engineer transformed into someone who is still a network engineer but has started to embrace turning to code and automation to be able to accomplish many of the things that we’re doing. In a lot of respects, kind of what we’re doing here as we look at the difference between a builder and operator is we’re building on it and kind of bringing to light real world scenarios and real examples that we’ve encountered in meeting with our customers, with industry folks. And this really builds upon, for those of you that have been part of the Network Automation Forum and were able to attend AutoCon 2, or if you have seen the presentation online, this is really building on those concepts that we started to introduce around the idea of the builder and the operator and how that you really kind of come together to bring some order into this world of chaos that is being proliferated by just kind of scripts sprawl everywhere.

    Rich Martin • 04:10

    Walk me through, now this isn’t a complete list, but this is a great list of some of the things that folks may already be going through or as they’re taking this journey as that brave network engineer, now turned programmer, walks down this journey and down this path, some of the things that they’re encountering or may encounter. On the builder side of things, what does life look like?

    Peter Sprygada • 04:31

    Yeah. I love looking at this list and we’ll walk through this a little bit because so much of this is based on even my own experience. I talk about the fact that, and I was, I was a network engineer for the better part of 20 years, and I helped organizations build global infrastructures, build global IP infrastructures, and my background is much like so many of our listeners out there. It was all rooted in CLI commands. But I started to run into that struggle. Back when I was working for an operator of deadlines rule the day, and we all face this. It doesn’t matter your job, it doesn’t matter your role. We all face this problem. Deadlines rule the roost. We got to get stuff done.

    Peter Sprygada • 05:12

    Obviously, it’s how we make money and it becomes deadlines upon deadlines upon deadlines. Looking at the number of things as a network engineer we were asked to do, it was like, how do we start to solve the problem of deadlines? Because the one thing we knew we weren’t getting is more headcount. But what we were getting is more network gear, more complex network gear, more complex designs. We started to think, well, maybe I can turn to automation to start to solve some of these challenges. It seems so easy at first, writing my very first Python scripts. I’ll be honest with you, it was daunting.

    Peter Sprygada • 05:47

    It was really daunting as a builder at the very beginning because I didn’t know Python the programming language from Python the snake. Right. But I remembered on the back of my head, there was a point in time when I didn’t know the difference between show running config and show startup config. when I started in my network journey. So it did take me to step back and kind of put myself back into that learning mode to try and start to learn how I could leverage things like Python to ultimately make my job easier. But I learned a very important lesson and it’s not nearly as easy as I thought it was going to be. You know, I think that, you know, it looks easy on the outset.

    Peter Sprygada • 06:28

    And honestly, the first couple of things I built were easy. Right? Everything from just simply dropping a VLAN onto a box or running a simple show command. Yeah, it was really easy to do. But I eventually got to a place where, you know, I wanted to start to use some of the code I was writing against my production infrastructure. Man, talk about running, you know, headlong into a brick wall. You know, trying to explain to my management, I want to run this script against, you know, our core router and the blank stares, you know, start to come and it’s like, you want to, I’m sorry.

    Peter Sprygada • 07:05

    You want to do what? No, I don’t think so. So, you know, there was a lot of challenges, you know, we ran into, and then it was compounded by, you know, once we kind of got over some of those hurdles, and I got folks comfortable with it, then it was, well, I want to start to share this with other people, right? Because other people can benefit from the things I’m doing. Because honestly, I know better than anyone else is, you know, the core network engineer, I know what needs to be done. I am the proverbial smartest man in the room. That was my mindset back then, I’ve since learned, but I was the proverbial smartest man in the room back then, and, you know, my scripts were the way to go, and therefore I really wanted to share it with people, but I just, it became very problematic, everything from, you know, the scripts on my laptop to how do I get people to use it, to how do I get people to embrace it?

    Peter Sprygada • 07:48

    And that really kind of sums up in my mind what the Builder persona is all about.

    Rich Martin • 07:53

    Yeah, no, that’s great, and thanks for that insight, because like I said, many folks are either entering into this, and so they need to kind of see what that, you know, survey what that land looks like, and this is a great head start for them. But at the same time, you kind of need the other side of it too, right? The Builder is great, and if you’re going to run your own scripts, it’s really limiting what you can do. So what about the operator? The operator here, and that’s my persona, so let me speak to that, because that is kind of where I came from, right? The operator and then the engineer. How do we feel about this, right?

    Rich Martin • 08:26

    Our networks are special snowflakes, you can’t automate them. That’s at least where we start. And even though our mentality may feel that way, we always know, though, we need to standardize, right? There’s just a good, you know, there’s just a good best practice to standardize, but without automation, it’s kind of like this infinite loop. Can’t standardize, I got too many devices out there, can’t standardize, I need automation, do it, don’t want to automate because everything is a special snowflake. So you got to start somewhere and automation is the key to this. So what’s one of the hurdles that we had to get over?

    Rich Martin • 08:56

    The next one, really, and this is a big one that pops up all the time, and I think we’re being nice here. I don’t need to learn any languages. Actually, I don’t want to learn any languages. It’s really what it’s all about.

    Peter Sprygada • 09:07

    There you go, exactly.

    Rich Martin • 09:10

    Or maybe to say it, I don’t need to learn any languages. You need to learn them. That’s right. So that’s one of them. Quite honestly, that’s kind of why I got into network engineering way back in the day. I didn’t want to be a programmer. And so network engineering gave me a field to focus on that was really deep. But here we are, where it’s like now the convergence of all this is around automation and orchestration.

    Rich Martin • 09:33

    And so it helps folks to understand some of that, even if you have a little bit of a background. This is a big one for me, there’s an entire, you know, network engineers, we love our acronyms, we love our, you know, our technology, we revel in learning new network things and spitting out new acronyms to one another to know what we, to prove that we know something. But when I walk into the world of developers, that’s a whole different world. There’s all new tools, all new acronyms, things I don’t understand, and now I’m in a foreign land. So I have to ask a lot of questions as a network person that I might not be used to asking, like, what is this stuff? I’m used to people coming to me asking, what is this, what is this VXLAN thing? What is this, right?

    Rich Martin • 10:20

    And so I might be a master of the networking domain, but when I get into the developer domain, that’s a whole new thing, right? And it’s not just learning languages, it’s learning all the prerequisite tools in order to make all this stuff work.

    Peter Sprygada • 10:33

    I think it’s also a new way of doing things, right?

    Rich Martin • 10:37

    Yeah, exactly.

    Peter Sprygada • 10:38

    It’s a very new way of doing things, and that kind of challenges, and we all know this, right? Anything that challenges the status quo is always going to run into friction, for sure.

    Rich Martin • 10:47

    Yeah, absolutely, absolutely. And that kind of feeds into this next thing, is yeah, I have a colleague, Peter, who’s the guy churning out scripts, but if I get my hands on that file or whatever it is, I have no idea how to run this thing. What do I even do? Where do I get started? That’s a challenge, and I don’t like that. Like I said, that’s an uncomfortable place for me to be. So on one hand, I’m told I need, and I even realize automation is really, I can see the value of it, I see my colleagues doing it, but me getting started, this is a hurdle for me.

    Rich Martin • 11:19

    Um, but let’s say I, you know, Peter helps me out one time and just one time gets the script running in my environment, uh, but then it breaks a week later. Right. And of course that’s not my fault. Whose fault is it? It’s Peter’s fault. No, it’s not my fault.

    Peter Sprygada • 11:34

    It is not my fault.

    Rich Martin • 11:36

    Ironically, this is, this is my opportunity as the networking person to blame, to blame something else. You know, the way we’re always blamed when something breaks, the next time is the network. So ironically, I might really like this when I get to point at Peter going, you broke the script, man. But at the end of the day, when we realize on the operation side, just how, you know, what it takes to run all these scripts. And this one is like the dagger in the heart. I don’t want to admit this because a lot of my world is around CLI, right? My own version of command line with CLI interfaces, but I might have to admit running automations through a GUI.

    Rich Martin • 12:14

    Makes a lot of sense. It’s a lot simpler, right? It’s a lot simpler and you know, I hate to burst Peters bubble on this last point, but he may think he’s the smartest guy in the room, but we all know But the network engineer is the smartest guy in the room Yeah So, let’s talk about what the reality looks like we’ve walked around some of the challenges when somebody starts to get like really dig their Feet into this and and takes that role as the network engineer turned automation engineer What does this actually look like Peter? Yeah, so, you know, I think in this this really tries to Encapsulate this journey on because you know as that builder, right?

    Peter Sprygada • 12:59

    My world is now becoming a world of writing code and and that’s where my focus That’s where my mindset is because I’m really focused on solving, you know challenges whether that’s You’re writing code to to address configuration issues whether it’s writing code to address operational issues whether it’s writing code to address You know software upgrades, whatever that might be You know I’m now very much in this tunnel mindset of I want to write code as I get that code to certain stages I want to be able to commit that code, right? I want to get it into my version control and get it through my test pipelines and making sure that it’s all running and working the way it’s supposed to be and then finally at the end of the day I need to publish that code because Right and anyone will tell you and any developer will tell you right that that you know, the reason we write code Mostly, the reason we write code is for other people. We want other people to use our code. That’s why we’re writing it And so that’s really what we’re where our focus is is right commit publish The real challenge comes, I think, after we get through the publish step. Because now I want other people to use this code, and now I’ve got to figure out, how can I get this code in other people’s hands? This can be a very simple, say, Python script. It doesn’t have to be overly complex. But I want to get this in the operations team’s hands because I don’t do operations, the operations team or the engineering team is doing operations.

    Peter Sprygada • 14:21

    I write code. So I work with I go over and I meet with my good friend, Richard. I tell Richard, we need to get this going for your team. Here, let me help you and let me get this installed for you and get you trained up on how to use it. Effectively, I’m turning you into a SME. That’s really what I’m doing. I’m turning you into SME. Richard is now the new SME.

    Rich Martin • 14:43

    Quite honestly, how hard can this be? This is Peter I’m talking about. There must not be too much to this, right?

    Peter Sprygada • 14:51

    Precisely. Exactly right. Exactly right. But, but here’s where my problem comes into play. Okay. You know, is that, and look, man, I know that you’re, I know that you are inundated with, with things you’ve got to do, right? You don’t have one thing you’re trying to do. You’re trying to balance 10 or 15 or 20 things all at the same time. So, so the challenge is sure we spend a couple hours. I get you trained up. You know, you’ve gotten proficient at using my script. The challenge is you’re not touching my script every day, right? Right. That’s, that’s, that’s our problem. And so now you come back to two weeks from now and you know, sure enough, I’m, I’m at home. I’m relaxing. It’s a Saturday afternoon. The game’s on, you know, I’ve just cracked open my, my favorite beverage. I got my, my little snack tray and you know, there it is, right? The Slack message goes off. Damn it, Richard. He can’t run the script. And, and, you know, as, as I kind of roll through the, the explicatives in my head, now it’s time to get on the call and retrain Richard because I got to show him how to do it again. I got to show you how to do this again, dude. I mean, come on, it’s just not that hard, you know, to figure this out.

    Rich Martin • 15:58

    So, well, clearly as a network engineer, I’m very versed in documentation. So, you know, I should be able to go back to my, my thorough documentation and, and, and figure this out, Peter.

    Peter Sprygada • 16:09

    Yeah, exactly right. Thorough, well articulated three sentences that represent the documentation. But no, look, you know, here’s, here’s the thing, right? I want to get back to my game. I really, I’ve been waiting for this game all week. So, you know what? Hell with it.

    Peter Sprygada • 16:24

    Just, why don’t you send me an email with the output? Let me look and see what’s going on. It’s, it’s just, it’s not worth it. I think to, to go through this, you know, online, just, just, you know, send it to me and I’ll figure it out, right? Because I just, I don’t have time to deal with this right now. The big game’s on.

    Rich Martin • 16:39

    Yeah. And this is, I mean, this is the barrier, right? This is literally the barrier. I get excited, right? Hey, I’m the SME, I get to do this, but then I realize all the stuff that has to be taken care of in order just to run this script. And if one of those things changes, I don’t touch the environment often enough to be an expert to know what it means. By the way, a lot of these errors that you might get for dependencies, they don’t make any sense, even probably to a network. I mean, to a developer, they don’t make much sense, right?

    Rich Martin • 17:10

    But you already know what to follow up and do. You’ve already done this before a hundred times. I haven’t.

    Peter Sprygada • 17:15

    Of course, because it always works in my environment and I’m a machine. I just don’t understand what kind of gremlins you got running around your house that are messing with your computer. Because it works fine in every other environment I put it in. For some reason, it never works in yours.

    Rich Martin • 17:29

    Right, and when you short circuit this process, and it makes sense, especially if there’s a need, you want to get your game. I need to get something done on the network. The automation is supposed to do it for me. If we’re going to spend another two hours figuring this thing out, we would both agree, now, just go and do the thing and let’s get this over with.

    Peter Sprygada • 17:49

    That’s right. At the end of the day, that’s what it’s about.

    Rich Martin • 17:51

    There’s their challenge right there, and that’s the chaos moment right there. This is the chaos moment. If this happens with one automation, it can happen with a dozen automations. If it’s happening with one type of automation platform, where Python, Ansible, it can happen with many, many more. This is that chaos effect we’re referring to.

    Peter Sprygada • 18:09

    That’s right. That’s exactly right.

    Rich Martin • 18:12

    Let’s do a fun demo. Peter, let’s go through this in real time. You are now relaxing on a Saturday about to watch the game, and now you get to step me through what this looks like as an operator. How about that?

    Peter Sprygada • 18:30

    Let’s do it. It’s not that hard. It’s a few easy steps. We’ll get you on your way.

    Rich Martin • 18:36

    Sounds good.

    Peter Sprygada • 18:39

    Yeah, exactly. Let’s get into a terminal and let’s get the party started.

    Rich Martin • 18:42

    Peter, you told me I needed to be in this terminal thing. That’s right. You’ve got an automation for me to run.

    Peter Sprygada • 18:48

    I do. I don’t see it. It’s in Git. Let’s start. Go ahead and I’ll give you the URL so you can clone it down to your machine.

    Rich Martin • 18:58

    I’m sorry?

    Peter Sprygada • 18:59

    It’s going to be Git. Git. You have Git. G-I-T. Git.

    Rich Martin • 19:06

    Okay. That’s not Git.

    Peter Sprygada • 19:07

    There we go. Yes. There we go, Git. We’re going to go ahead and we’re going to clone a repo down to your machine. Let’s just talk for you for a moment. We’re going to go ahead and clone a repo down to your machine.

    Rich Martin • 19:15

    What is that? Clone a repo? I just need the file, man.

    Peter Sprygada • 19:19

    Don’t worry. It’s in the Git repository. We keep things in the repository because there, we can keep track of what’s going on. We get a nice audit trail of changes and version control and a lot of control around it. I know you don’t care about that stuff, but this is our starting point. We got to get this down on your machine so that you can ultimately run it.

    Rich Martin • 19:41

    Okay. I got you.

    Peter Sprygada • 19:42

    Yeah. We’re going to use a command called clone. It’s Git space clone. Then we’re going to do another space and we’re going to do HTTPS colon double slash GitLab.com. slash hash digest.

    Rich Martin • 20:01

    This?

    Peter Sprygada • 20:02

    Not quite. The word hash. The word hash. There you go. Hash digest, all one word. Yep. Digest slash scripts. and a quick enter will get us rolling here.

    Rich Martin • 20:17

    So this will get me running.

    Peter Sprygada • 20:19

    Oh boy. So you don’t have Git on your machine.

    Rich Martin • 20:24

    You didn’t tell me that. I don’t even know what that is.

    Peter Sprygada • 20:27

    Okay.

    Rich Martin • 20:28

    Why is it already on there?

    Peter Sprygada • 20:30

    Well, you have to, so it doesn’t come part of, so you’re using Fedora here I can see.

    Rich Martin • 20:35

    That’s what you told me to use.

    Peter Sprygada • 20:36

    Yeah. Have you installed packages with Fedora in the past?

    Rich Martin • 20:41

    No.

    Peter Sprygada • 20:42

    Okay. So it’s all right. Well, first thing we have to do, we got to get Git installed in your system. So there’s a utility called DNF. So you have to do this as root. So hopefully you have root privileges on your machine.

    Rich Martin • 20:56

    Yeah, I installed it. So what do I do?

    Peter Sprygada • 21:00

    So if we do a sudo, S-U-D-O, and then a space, and then the DNF, and then a space, and then install, and then Git. Just G-I-T? G-I-T, yeah. Exactly.

    Rich Martin • 21:17

    All right. Hey, there we go.

    Peter Sprygada • 21:20

    Hey, there we go. We got something going. All right. We’re off and running. We’re looking better. We’re looking better. Let’s take just a moment to run through what we get actually installed on your machine. Now, this is going to give us the ability to pull the script down. Go ahead and accept that.

    Rich Martin • 21:34

    Okay.

    Peter Sprygada • 21:36

    This is going to give us the ability to pull the script down, but then we’ll have to do a few other things to actually get it up and running. I should have had you check here before we got started, but I’m assuming you’ve got a version of Python installed on your system. We’ll get to that in a minute, but let’s make sure we can get the script pulled down, and then we’ll go from there. Okay, great.

    Rich Martin • 21:54

    Okay. It said it finished.

    Peter Sprygada • 21:56

    All right. If we want to just go ahead and bring back our Git command, I think it’s up here. There you go.

    Rich Martin • 22:02

    Okay. Hey, I know the up arrow. I’ve known that for a long time. I should be able just to hit Enter now?

    Peter Sprygada • 22:12

    You should. Yeah, you should. You should be able to get to Git. Okay, great. Fantastic.

    Rich Martin • 22:16

    What did that actually do then? You got to explain this piece to me.

    Peter Sprygada • 22:19

    Yeah, absolutely. Git is the version control system we use. Clone is effectively saying, go out to the version control system and bring down all of the scripts that are in this repository, and the repository name is called scripts.

    Rich Martin • 22:32

    Okay. Once I’ve done this Git clone thing, I should never have to do this again, right?

    Peter Sprygada • 22:36

    No, not quite. What? Every time you want the latest set of scripts, you would have to pull in the latest using a different command. Okay. We’ll get into all of that a little bit later.

    Rich Martin • 22:51

    Okay. All right.

    Peter Sprygada • 22:52

    Now, if everything went right, you should now have a new folder called scripts on your hard drive here.

    Rich Martin • 22:58

    All right.

    Peter Sprygada • 22:59

    So okay, great. We do. So we can just go ahead and change into that directory.

    Rich Martin • 23:03

    Okay. There should be a bunch of stuff in here, right?

    Peter Sprygada • 23:08

    There should be. There should be a bunch of stuff. So if you just do a, in fact, if you use the tree command, you can get a quick look at the layout.

    Rich Martin • 23:17

    All right. I’m learning something new here. Yeah. Just hit enter?

    Peter Sprygada • 23:21

    Yeah. Tree is what we’re looking for. Okay, great. So yeah, we’ve got some scripts. Okay. So we’ve got some scripts that will effectively, so as you know, our environment is standardized on Arista EOS, so we’ve got some scripts that will actually do some things. And hopefully they’re relatively straightforward. Let’s, can you go ahead and change directly into the Arista EOS directly? Let me just kind of walk you through this and kind of a refresher of what’s going on here, because I want you to be comfortable about what these things are doing.

    Rich Martin • 23:47

    Yeah. Okay. I can do that. And then I should see some files in here. Yeah. Yeah. Okay. So this is all the scripts then, right?

    Peter Sprygada • 23:55

    Correct. These are all the scripts that are currently in the repository. So let’s just do something simple, like if you want to just cat out the show version.py file.

    Rich Martin • 24:03

    To do what?

    Peter Sprygada • 24:04

    I’m sorry. So we’re going to take a look at what’s in this file. So we’re going to use a command called cat, or which is short for catalog. So cat space. Okay. And then show the show underscore version.py. Okay, and just go ahead and enter there.

    Peter Sprygada • 24:25

    Okay, so this is Python. This is a script written in Python. This is actually using a library called NetMiko, which is a fairly common and standard library in the network automation community. It’s been around for quite some time. It’s mostly based on the tremendous work done by Kirk Byers and community supported. But what NetMiko does is effectively, it allows us to connect to network devices and in a way that allows us to send CLI commands, the same commands you type, and then get the results back.

    Rich Martin • 24:58

    Okay, the one thing I do see here is show version. I understand that.

    Peter Sprygada • 25:02

    Yep, yep. So that’s what effectively this does is it runs show version. Okay. And you can see it’s super secure because we’ve got our username and password embedded right in the script.

    Rich Martin • 25:11

    I mean, just like my Excel spreadsheet.

    Peter Sprygada • 25:14

    Exactly, exactly. But we need to create, and so if you go ahead and just do a change directory back one, so we get back to the root.

    Rich Martin • 25:22

    Okay.

    Peter Sprygada • 25:23

    Now, we’re going to have to go through a process to actually create an environment. You can’t just run this as is. We need to get some dependencies installed. Let’s go ahead and do a Python space, hyphen, hyphen, version.

    Rich Martin • 25:43

    Python space, you mean dash, dash?

    Peter Sprygada • 25:46

    Yes, dash, dash, version. Let’s just make sure we’re, oh boy. Oh, it might be, let’s try a Python 3. Sorry, the number 3, Rich. The number 3.

    Rich Martin • 26:05

    The number, you need to say the number 3.

    Peter Sprygada • 26:06

    There we go, there we go. OK, great. All right, we have Python installed. That’s a good thing, because without Python, we’re really in trouble. OK. So now, go ahead and create yourself a virtual environment, and we’re going to work in that virtual environment as we go forward.

    Rich Martin • 26:20

    Say what? Yeah. What is a virtual environment? Be it like a virtual machine?

    Peter Sprygada • 26:29

    Something like that. How do I describe Python virtual environments in Tensor? I’ll tell you what.

    Rich Martin • 26:36

    Look, wait a minute. Do I need to do that to run this thing?

    Peter Sprygada • 26:41

    Well, we’ve got some requirements we have to get installed. The easiest way to do it in virtual environment, but yeah, this is really becoming problematic. I mean, it’s just, there’s so many things here that I do intrinsically that I don’t think about. So maybe there’s a better way we can tackle this.

    Rich Martin • 27:01

    I mean, you know what? I thought going into this too, this would be pretty simple. You just show me how to grab the thing and then I run it. Yeah.

    Peter Sprygada • 27:09

    Well, it literally should be that easy.

    Rich Martin • 27:12

    Right. By the way, if I’m the SME for my team, I feel like I might have to show a lot of people this stuff myself. Yeah.

    Peter Sprygada • 27:20

    Well, I’ve got maybe a different way we can approach this.

    Rich Martin • 27:23

    Okay, I’m all for it at this point, because I mean, are we like halfway done here?

    Peter Sprygada • 27:29

    No, we haven’t even gotten to the point of even attempting to run the script yet, I’ll be honest with you.

    Rich Martin • 27:33

    Okay, so there’s a lot more of this kind of esoteric to me kind of stuff.

    Peter Sprygada • 27:37

    And honestly, we’re like halfway through the first period here of the game, so I think we need to move this along.

    Rich Martin • 27:43

    Okay, all right, I get it, I get it. It’s a little more complicated than I initially thought going into this. And perhaps you share the same thing because of the intrinsic, almost like subconscious knowledge that you have. You just do the thing, right? Yeah. And I don’t know how to do any of these things.

    Peter Sprygada • 28:01

    Yeah, because ultimately at the end of the day, we’ve got to get the environment installed, we’ve got to get dependencies installed. Once those dependencies are installed, now we can finally run the thing, to do the thing, to make the thing happen. And now we got all the things going on, and that’s a good thing.

    Rich Martin • 28:17

    Right, and in your mind, it’s like, well, this is taking too long. We all have things to do. And in my mind, I’m thinking the same thing. This is taking too long, I’ve got things to do. If automation doesn’t save us time because of all the prerequisites to run this thing, and I’ve got to do some form of this every single time. I could have just done this by hand. I could have just done this by hand, and that’s part of the challenge, to shift back into the way we’ve always been doing things because it’s always been more difficult and complicated than we initially thought.

    Peter Sprygada • 28:51

    I mean, yes. I’m thinking through everything we’ve been going through to simply run show version.

    Rich Martin • 28:57

    Yeah, exactly. Holy smokes. You mentioned there’s a better way. What do you have that makes this easier?

    Peter Sprygada • 29:06

    The team has been working on building out some new infrastructure. I guess now’s as good a time as any to go ahead and share it with you. You mind if I go ahead and take the screen share? Absolutely. I want to show you something we’ve been working on here. I think you’re going to like it.

    Rich Martin • 29:19

    Okay.

    Peter Sprygada • 29:21

    Go ahead and get myself shared here. We’ve been working on setting up and deploying a new automation gateway, specifically the Attentional Automation Gateway. With the Attentional Automation Gateway, we now have the ability to essentially do everything that we’ve been trying to walk through through very manual steps. We’ve been doing it in such a way that it can all dynamically be done, and therefore, I can set up an environment to allow you to make use of it. So let me just show you what we’ve got going on. This is the current version of IG. I’m going to use the CLI command line interface right now to work with the server, and just show you what we’ve got set up.

    Peter Sprygada • 30:04

    I’m terrible at talking and typing at the same time.

    Rich Martin • 30:06

    We all are. There we go.

    Peter Sprygada • 30:09

    I already missed a command. What I’m going to show you here is, you remember we did that clone here for the scripts? Well, here it is. In fact, let me go ahead and take a little bit of a deeper look into this. Just to show you, I really can’t type.

    Rich Martin • 30:26

    I believe you.

    Peter Sprygada • 30:27

    Scribe, there we go. Here’s our scripts repository and there’s the URL. If you remember, you typed this with the Git clone. That’s right. You had to install Git, you had to learn the Git commands. Honestly, if you’re going to only use them once every few weeks, you’re going to have a cheat sheet, 10 miles long. That’s going to take you just as long to try and find it.

    Rich Martin • 30:49

    Well, actually, I guarantee you I’m not going to have my cheat sheet nor my ample documentation because that’s a reality.

    Peter Sprygada • 30:56

    Exactly. Let’s try and see if we can’t make this a little bit easier. Once we get our repository set up, we can now build a set of services against that. If I look at the set of services, I’ve got a bunch of services that I’ve already defined on this gateway. You can see them here by their name and what they do. We were working with ShowVersion. Here I actually have a service called ShowVersion. As a matter of fact, when I go and I can start to take a look at this, I can say, oops.

    Peter Sprygada • 31:28

    Service ShowVersion, we can see that it is a Python script, which is what you actually just catted out on your terminal line. In fact, there you can see it. It’s in the Arista EOS folder just like you saw. There’s that ShowVersion.py. But we’re going to go ahead and we’re going to be able to execute this. But we’re going to eliminate the need to go through all the steps that you are going through. In fact, we only got maybe a third of the way through the process, because what we still needed to do is we needed to create a virtual environment. We needed to install all of the dependencies.

    Peter Sprygada • 31:58

    Those dependencies, by the way, if I were to just give you a sense of it, it’s the NetMECO library, but we still have to get it installed. Here’s the other problem, is that depending on when different libraries are released and how different things might get pinned as dependencies, you could have a different version of NetMECO that I’m developing against. Now, we’ve got a new problem on our hands.

    Rich Martin • 32:19

    Right.

    Peter Sprygada • 32:21

    Because I wrote it using a very specific feature of the latest. You don’t have the latest and therefore you got to run it. You get an error. I never see the error. So now we’re back into that same scenario.

    Rich Martin • 32:31

    You broke it. Exactly. Works fine on my sheet. That goes back to what I was saying, like I have to run. So if I’m doing this the way we intended to originally, I have to go back and remember. to do the Git thing to make sure I have the latest thing. Otherwise, I’m running an old version.

    Rich Martin • 32:52

    If something’s not working then, we’re talking two different languages because we’re talking two different scripts.

    Peter Sprygada • 32:58

    That’s exactly right. Right now, we’re just dealing with the Python script. Imagine this really compounds itself when we start getting to frameworks, like say Ansible or Terraform or whatever the case is. Because now not only do you have the underlying dependencies, but then you’ve got the framework dependencies and you’ve got the syntax changes between writing code versus writing a playbook, versus writing a plan, versus writing heaven only knows what else. I mean, it’s just we really start to compound upon ourselves.

    Rich Martin • 33:23

    Right. Right.

    Peter Sprygada • 33:25

    One of the other interesting things though that, and we didn’t even get to this part as I was trying to show you how to run the script natively. But I think one of the things that makes this really unique is, we also have the ability to do input validation. Because it is important that when you run these things, that you’re providing the right sets of input. Otherwise, scripts don’t run. So we actually have a capability here called decorator, where I can actually define that input, and therefore I can make sure the input you’re giving me is the input I expect. So much so, that I’ve got a decorator that has been already set on this particular script. I’m gonna go ahead and just show it to you real quick.

    Peter Sprygada • 34:07

    And decorators are defined using just standard JSON schema. Workshow version. And so I know this is hard to read. So it’s a lot of just JSON. We really only have one, actually two input parameters. We got one called format, one called host. But one of the things that we did with IGCTL is we tried to make it really easy.

    Peter Sprygada • 34:27

    So don’t worry about this command. If you just remember this command, and that is, I can do a run, whoops, Python script show version. And if I go into help, by the way, we made, there’s lots of copious amounts of help, as you can see that embedded right into the CLI. But one of the unique things that we can do is, we can use the use command. Actually, let me do this, let me clear that. And let me add use. Whoops, not user.

    Peter Sprygada • 35:03

    And so what’s neat about this is, if you can’t remember what you have to pass in, this will actually tell you, oh, to run the service, I have to pass in some additional values, otherwise it’s going to fail. So really, all you’ve got to remember now is IAGCTL, run Python script, the name of the service, in this case, show version, and then hyphen, hyphen, use, and it’ll tell you what parameters you have to pass in and what parameters are available to be passed in. So once I’ve got that information, now I can actually go ahead and I can run the script. So I’m going to go ahead and do that. So we’re going to go ahead and run Python script, show version, and I’m going to go ahead and set host equal 172.20.20.3. So that’s going to go ahead and that’s actually going to do everything I was just trying to teach you how to do. Okay. So I know you’re a network guy, so I know this makes you feel good.

    Rich Martin • 35:56

    That makes me feel comfortable. Yes. You’re at home. I see that. You know what makes me more comfortable? The fact that I see that I only have to type in one thing.

    Peter Sprygada • 36:06

    That’s right. One command and what it did is it took care of all of the Git clone business. It took care of all of the virtual environment setup. It took care of installing all the dependencies for you. It took care of validating our input. In other words, and just for fun, let me get rid of this because you saw when I typed use that was a required parameter. It will tell you no host was required. So now I can use that hyphen, hyphen use and I can see sure enough, yeah, host is indeed a required parameter.

    Peter Sprygada • 36:35

    I also happen to have another one here, format, which is optional, but I could use that as well. I could do something like hyphen, hyphen set format equal JSON. I know you don’t want this output, but others might. Now I’m getting the output as JSON format back. These are just different ways that we can use optional components.

    Rich Martin • 36:54

    Okay. This makes me feel a lot better about my foray into network automation. I like this a lot better. I’m not going to admit to you that I’m a simpleton when it comes to this stuff, but I will admit to you that I like things simpler. How about that?

    Peter Sprygada • 37:12

    I completely understand.

    Rich Martin • 37:15

    This simplifies a lot of very complicated things I would rather not do, and you would rather not walk me through.

    Peter Sprygada • 37:21

    Correct. Because now I can just give you the command to run, and you can go to your terminal and you can run the IAGCTL command, and you don’t have to get involved with all of this stuff that has to happen in the background.

    Rich Martin • 37:32

    Correct.

    Peter Sprygada • 37:34

    But I do have one more thing I want to do here for you, because you made the comment as an operator, and I took it very much to heart that you’ve got so much going on in your world. Even dropping to a terminal and running one command can be a challenge at times. Because you still have to remember the one command. I do. I’m sure it’s one command, but it’s one command for every service that’s out there. We’ve got a number of services that are already available here.

    Peter Sprygada • 38:03

    But we actually have stood up, in addition to having the CLI capability, we’ve also stood up the Intentional Automation Service as well. I’ve gone ahead and prior to this weekend, because I had a feeling something might happen this weekend. I’ve gone ahead and I’ve given you access to our Intentional Automation Service web console, which is the SaaS service that’s hosted. You should have those credentials now in your inbox. Why don’t you go ahead and log into that, and maybe we can make your life even a little bit easier yet.

    Rich Martin • 38:36

    Well, I don’t mind doing the CLI stuff, but I do have a lot of folks on my team that would probably rather not use it. I’ll let you walk me through this, just so I can have that in the toolkit as well.

    Peter Sprygada • 38:48

    Outstanding.

    Rich Martin • 38:49

    All right. Let me share my screen. All right, so yes, I did get get get my login and my sign in so I’m going to sign in now. Oh, let me reload. Try that. There we go. I think it said, go under operations. Now, walk me through what I’m looking at here really briefly.

    Peter Sprygada • 39:15

    Yeah. Real brief. This is the attention automation service that we’ve stood up and this is now sitting, this is doing everything you were just seeing me do from the CLI. It’s just now giving you a web UI for being able to execute these services because the reality is, and I know you and I have worked together long enough. I know you really could care less about whether it’s a Python script or an Ansible playbook or a Terraform or whatever. Yeah. Correct. You just want to do the thing. I just want to do the thing. You’re talking about doing the thing.

    Peter Sprygada • 39:40

    Yeah. Do the thing. If you’re on the left side, if you go ahead and click on the automations.

    Rich Martin • 39:45

    Okay.

    Peter Sprygada • 39:47

    This list should now look familiar to you. This is the same list you saw.

    Rich Martin • 39:50

    Correct.

    Peter Sprygada • 39:52

    We’ve tried to make it really easy for you and your team to get started using these automations. In this particular case, I know that we’re going to work on getting a new VLAN deployed. But let’s take a look at what VLANs are currently out there. If you go ahead and select the show VLANs automation.

    Rich Martin • 40:15

    All right.

    Peter Sprygada • 40:16

    I think we were working with 172.20.20.3, if I remember correctly. I got it.

    Rich Martin • 40:22

    Let’s just go ahead and run that.

    Peter Sprygada • 40:26

    We’ll go ahead and we’ll launch that. If you switch over to the Activities tab, we can actually see this running. In fact, it’s already completed. It’s 1.84 seconds.

    Rich Martin • 40:36

    I like that.

    Peter Sprygada • 40:36

    I don’t think we got Git installed in 1.84 seconds.

    Rich Martin • 40:41

    I’m already seeing value. How about that?

    Peter Sprygada • 40:43

    That’s awesome. Now, if you go ahead and click on it, you should be very happy with what you’re seeing now.

    Rich Martin • 40:48

    Okay. Yes. This is exactly what I need.

    Peter Sprygada • 40:51

    But now I see we are missing VLAN 20, and I know that that’s what your team is trying to get deployed today. Let’s go ahead and do that. Let’s go ahead back to our automations because we have a service for that. It’s under the Manage VLAN. This one’s a little bit different because now you can see that we’ve got some additional parameters that we can set up. This is all based on, if you remember that decorator I was talking to you about, this is all being dynamically rendered from that decorator. So I built the decorator and it kept it in my code repository and then IAG is able to take that and then dynamically create a form.

    Peter Sprygada • 41:27

    So I, as a developer, am in control of what the input is and I can force you to fill out that input before you actually run the script, and therefore you can’t accidentally run a script with invalid input or missing input.

    Rich Martin • 41:37

    Yeah, and that’s great because as a network engineer, we’ve all been there.

    Peter Sprygada • 41:42

    That’s right. That’s exactly right.

    Rich Martin • 41:44

    We’ve missed an input and done something either really, really bad or maybe not so bad.

    Peter Sprygada • 41:49

    The beauty of this is this input validation doesn’t change regardless of the underlying automation technology. Whether I wrote this in Python or I built an Ansible playbook or a Terraform form or whatever it is I did, this stays consistent. So your team gets a very consistent way of running the automation regardless of the technology and providing input to it because it’s all the same. You don’t have to have a fundamental understanding of these different tools and technologies that are being used.

    Rich Martin • 42:15

    Fantastic. Fantastic. So step me through here. So under host, I should be able to put the same host?

    Peter Sprygada • 42:20

    Yeah, same host. Obviously, the state, if you just drop that down, we got state absent and present. This is present. We’re deploying the VLAN. Our VLAN ID, I think the change window called for VLAN ID 20 in this case and we can assign an arbitrary name to it to test VLAN or whatever. Arbitrary name you want or you don’t need anything. It’s not a required field.

    Rich Martin • 42:43

    I’ll just put test in there. Yeah, and then we can go ahead and run that. Okay.

    Peter Sprygada • 42:47

    That will go ahead and that will kick off. Again, same thing. It’s building the environment on the backside so that what is being run is consistent with how I’ve built it. You haven’t had to worry about dependencies and libraries and NetMecos and Pythons and whatnot. Anyway, we’ve completed now and we’re now going to our Manage VLAN. Again, you should see something here that’s making you very comfortable.

    Rich Martin • 43:13

    Yeah, this is exactly what would have taken me a little, you know. a little bit longer than what this executed in, and that’s the point. You’ve saved me time, not just in running it, but all the setup leading up to just to run it, that we had to walk through before.

    Peter Sprygada • 43:30

    That’s right. It’s all about saving time and offering consistency to your team. Therefore, you don’t have to learn Ansible, and you don’t have to learn Terraform, and you don’t have to learn Python, and you don’t have to learn this, and you don’t have to learn that. You don’t have to learn all these things you’ve got now. A consistent way by which you execute automations in your environment.

    Rich Martin • 43:50

    Right. In fact, just- Go ahead. Go ahead. No, no. You finish off.

    Peter Sprygada • 43:54

    I was going to say, just for the heck of it, we can even validate that this is all live and in living color. Absolutely. We can do show VLANs or we can do show running. It’s up to you. Plug in your same host address, and we will see that if we’ve done our job right, Let’s go back into activities and let’s take a look at the show VLANs and lo and behold VLAN 20 is there, maintenance window can be closed.

    Rich Martin • 44:18

    And the thing I was going to say is now we both can feel comfortable putting this in the hands of more members of our team who may not have your skill set or my skill set as a network engineer, right? And this is where we can start to multiply the value of that automation.

    Peter Sprygada • 44:37

    That’s absolutely correct. Yeah, that’s absolutely correct.

    Rich Martin • 44:40

    That’s fantastic. Well, thank you, Peter, for walking us through all of that. I know we took a roundabout way. Usually we go right to the point, but I think it’s important for folks that are either perhaps suffering through this now or will be suffering through this in the future to know what the solution set can look like for them. And so as we kind of conclude this, walk us through what we saw here. We started off with the chaos. Now we’re seeing something that doesn’t look like chaos.

    Peter Sprygada • 45:09

    That’s right. That’s exactly right. That’s what it’s all about. It’s all about, we’ve got builders, we’ve got operators, and we recognize that they both fill a very important function. It’s important that we create a way for them to communicate so that they can each leverage and build on each other’s strengths. The builders are very good at building automations. That’s what their focus is and they do a good job of it. Conversely, the operators are fantastic at running the infrastructure and making sure that the infrastructure is consistently kept to a high standard of uptime and performance, etc. By calming that chaos, we can now get the builders in their comfort place of writing code, commit code, publish code through the Git repository, but we can separate the operator from that.

    Peter Sprygada • 45:58

    By doing it through Itential Cloud, we can make it a very seamless way that operators can now consume all of the exposed services and execute them against the infrastructure. Therefore, whether you’re the NOC or the SOC or the Cloud team, or yes, even if you’re a Richard, you can actually be able to consume automation and consume it in a way that you maintain productivity without having to go down the path of becoming a developer or learning development methodologies, or learning all of these esoteric tools that developers use to ultimately build a lot of this automation.

    Rich Martin • 46:34

    That’s fantastic, Peter. Thank you so much for walking us through that. That’s giving us the high-level representation of what we just did on the command line and through the SaaS interface. That’s awesome. You know what? I think after something like that, we can rebuild our friendship and maybe I can come over and have a beverage and watch the game with you at some point now.

    Peter Sprygada • 46:57

    Absolutely. Hey, we’ve got the maintenance work done through cloud. It’s only halftime. We got, absolutely, come on over and let’s watch the second half of the game and enjoy it because we know that the infrastructure, the maintenance window is done and it was done successful.

    Rich Martin • 47:11

    There you go. There you go. And with that, we will conclude this webinar. I had a lot of fun, Peter. This was great. I look forward to the rest of them in this series. But for all of you in the audience, if you like what you saw and you want to check it out, there is a 30-day unlimited free trial for you. So you just sign up at itential.com slash free trial and get going.

    Rich Martin • 47:32

    And everything you saw in our demo today, you can start to take advantage of in your own environment with your own Peter and your own Richard. Exactly. Peter, thank you so much for the time here. Looking forward to working with you again.

    Peter Sprygada • 47:46

    Thanks, Richard. It’s been fantastic.

    Rich Martin • 47:48

    All right. Goodbye, everyone.