Cisco Customer Success - Video

ACI as code:  Safe, validated automation with ND pre-change analysis

Playback confirmation!

Do you want to resume playing from last left location?

Chapter 1 Thumbnail
00:00
Welcome, recording info and interactive poll kickoff
Chapter 2 Thumbnail
04:19
Agenda and the journey from CLI to Network as Code
Chapter 3 Thumbnail
07:14
ACI API fundamentals: REST, responses, DN and class queries
Chapter 4 Thumbnail
16:18
APIC API Inspector demo
Chapter 5 Thumbnail
20:58
From APIs/SDKs to Network as Code and IaC overview
Chapter 6 Thumbnail
27:44
Terraform NAC demo: YAML intent, plan/apply and state
Chapter 7 Thumbnail
41:46
Validation, pre-change analysis, testing and CICD workflow
Chapter 8 Thumbnail
50:44
GitLab pipeline demo: validate, plan, deploy, test
Chapter 9 Thumbnail
01:06:13
Ansible automation and Excel-driven static port bindings
Chapter 10 Thumbnail
01:14:35
Q&A, support and next steps

Transcript

Oh thank you everyone for joining us. I think there was one question asking if it'll be recorded. Yes, the session will get recorded and we'll share the recording link with you.00:00But do, you know, take part in the interactive questions that we have throughout the C throughout the session as well.00:20Anshul over to you. We can get started. Okay. Thank you Pratibha. So welcome everyone to the next to our expert insight series on network as code for ACI for, you know, man managing ACI wire DevOps frameworks, and it's it's a way to.00:27And also it's it's a way to do a safe validated automation using pre change analysis. So my name is Anshul Mangla. I'm a customer success specialist in customer AI infra team, and with me, I've got my last colleagues, and so we'll be working.00:47I'm walking you through how you can use as code frameworks to manage your fabrics in a more.01:07Failed safe and risk freeway and I mean more more streamlined in a better way. So oops, right the wrong way. So yeah if you can join the slido.com, so if you're with your mobile so with slido.com.01:16If you can please join this, this poll, we'll give you a close to a minute.01:36And then once you sign in, then we, we will ask you a series of questions throughout the session just to give you a, just to get an overview of where you are in your automation and ask or journey. So we'll just, wait for a few a few more to.01:43Like for 30 more seconds and then we'll move to the questions.02:03So team please do join in and share your feedback. So this will help us support you through the journey as well. So please do take your time to join in and remind your colleagues, peers, as well to join the session.02:08I think Javier has a question that does ACI has a code replace? No, not really. ACI has a code is more like a DevOps framework where we we give you all the terraform or ansible modules, which will.02:25You know, help you, manage it in as as code way which will will will show further down but is more about, I guess just providing you a framework in terms of pipeline than ansible, but not really the content behind it. So the code is more about the actual content.02:45In a framework which will make you just abstract all that complexity and just manage your framework as a code. So we'll we'll walk you through as we go further down. So should we move ahead with? Yes, let's move ahead and shoot the 1st question.03:05Okay, so give me 20 s so guys please if you can just reply whatever your answers are, ok. I see 9 % saying through CLI, I'm surprised people are still.03:25Using ACI CLI as well for configuration. We often receive feedback that ACI CLI is difficult compared to other CLI, but I could see 7 % there. Interesting.03:45That's very, very minuscule numbers. See 34 people are taking part in the poll with around 90 folks on the Webex so more folks can join to take part in the upcoming questions. I think we can move on and should we have a good picture of what is.03:57That our audience is currently using.04:17Okay. So yes, this is the high level agenda of what we'll be covering. So 1st we'll just show you the high level journey in terms of how our customers are moving from using CLI to what you were showing DevOps, sorry, the automation, you know, scripting to DevOps. And then.04:19We'll walk you through the APIs, how do you use ACI APIs and how they look like. I think I will walk us through the ACI automation frame fundamentals in detail and then I'll do a network as a code demo for you guys.04:39To show you how to work as a code for ACI looks like, but will do a CICD pipeline demo and then automation for day two ops walkthrough, and then a demo demo for that and a call to action. So this will be a high level flow, but we can always, you know, go back and forth as required.04:57Okay now this is like a very good slide I like and the reason is because it each of the customer who who's joining today or whom we whom we talked to can really identify where they are.05:19So basically talks about our customers and what their journey is on normally, like, as we saw in the demo, customers start with normally straight what you know logging straight to the CLI and what monitoring directly on the switch via the CLI managing it directly.05:33You put what we call CLI ops, right? Level two is when they move to fabrics in controllers, right? Where we're talking of ACI fabric and controllers like Apic, which sort of which we call, which we more call as click offs, right? And then that's where it's like a domain controller based management of a system.05:53And it's a network wide configuration, not device by device configuration, and level three is.06:13When some, for customers start use some automation with Ansible or Python or even Terraform for simple use cases, and then they use APIs and it's a simple task automation, they use playbooks, and it's generally a per domain network automation. Now level four is what we are talking about in terms of.06:19Network as a code where we want you to be. Yes, slide will be shared in the future, definitely. Network level four is where we want all of us to be all all of us want to be to be there with with You want to be able to manage our frameworks, not using CLI, not using clickops.06:40But wire devops, right? So that is the utopia we are looking at, and obviously at level four you have everything is model driven, it's very CICD pipeline driven, and you can have the same sort of framework for multi domain network orchestration, right?06:59So this is I think just I guess most of you would be in at least in one of these, you know, boxes right now, but the idea is that all of us move to level four ultimately. So I'll just pass on to Apoor in the meanwhile, and Apoor can share the.07:14The, the API part with us. So back to you thanks actually thanks for the introduction. So, yeah, so this might sound like a bit of playoff words, but yeah.07:32If as you see, you cannot spell Apic without API, right? There is a API in APIC.07:52Itself, right? So, yeah, so it highlights the way API has been integral part of ACI deployment. So whenever you do ACI configuration via apic, right? It is all APIs in the background so.08:00ACI has been built with mind of like software defined networking like you do everything via a controller and it's all managed as part of databases and API calls happening in the backend, right?08:20So, this is what like we wanted to do API is part of APIC, right? And now if you see like before there were APIs and we were doing legacy networking in data center.08:40What was happening is even if you had an API support.09:01It would not be like a robust one, right? You would have to like there was complexity, there was a risk and there was NO abstraction, right? So, you don't know whether the object got deleted which you wanted to delete, right? Or.09:06Like has it updated, has it not updated? And if there was any error in the background then it would not be explained to you properly, right? So this was like three API error, right?09:27There was some automation, but yeah, it was not so reliable, right? So, it was not user friendly to be precise, right? So now like with the help of APIs, why did we have APIs come into picture? Because.09:44There was an interface which was defined to have the databases communicate with the user so everything you do, it's a standard operation.10:04You can read, change, delete, and there were also REST API standards that were introduced so yeah it would be one standard followed across all the products, right? So what this brings with it is.10:16You have abstraction, you have safety and you have consistency, right? So, you will actually like whatever API call you do, if it is following a particular standard you can think through it before how will it work, right? So if you want to read something, you will do a.10:34Get API, if you want to change it will do a put or post, right?10:54And then if you want to delete something you you can do the same as well, right? So it, it turns the complex task into a single thing, right? So that's where apa's come into picture.11:00Okay, so now like when we do a API call or when a user does a API call, right? It will be based on HTTP or HTTPS, so you will have TCP port number 80 or 443.11:15That will be putting all your API calls and then once the task that you do, is it complete or is it not complete, you will get a response. So there are particular like kind of responses as part of the defined standard.11:30So there, there are 200 series responses, which means that everything that you asked the API like API to do, it, it did it successfully and it got the acknowledgement.11:50That it has went successfully, right? So that is a 200 series response for you. If, if by chance the user has given a wrong syntax or a wrong payload.12:08Or the wrong request which does not exist on the, on the platform, right? So those kind of things you will get a response from the API call that it's a 400 series response. So generally 400 series means the client, which.12:24Did the API call is having some issue like this, like a syntax or a completely different operation that is not allowed by that user as well, right? So the user maybe unauthorized to do something even though the API is.12:43Valid, right? But he is not authorized to do that change that comes under 400 series responses. And there can be another set of responses which you get as part of 500 series responses. Like so it maybe because.12:59Was the AP kids not able to respond or.13:19Apic is having a CPU issue and it didn't process the API properly API calls or anything. So all those kind of responses will come back to you as a series of 500 response, right?13:24So, yeah. So yeah, this was how I was talking about ok so yeah so how do you like you do a API call on the apic, right?13:40So, so Apic has a standard data model which you need to be aware of. So you will be able to do the API calls more efficiently once you are aware of these concepts, right?13:59So so that there are two types of queries present here, right? The 1st one is DN query and 2nd type of query is class query. So what is a DN? DN is a distinguished name in API.14:14Like in ACA. So your each object like maybe a tenant, a BD EPG, AEP, everyone is having a unique distinguished name. So in this example, if you see it's a API call and you are calling a.14:31A particular tenant called CL you are calling a particular application profile called CL app.14:51And then EPG inside it, that's what you are, this location refers to, right? So this is a distinguished name and there is also another query like a class query. So, if you see here the structure.14:58Refers to API node class, so you you can put, e.g., you want to fetch all the.15:19API notes, right? Aeps in the particular tenant. Then you can you don't know the names right now, then you would have to 1st fetch what are the APs available. So that can be done via class query.15:26So, yeah. So here, the 1st part refers to the node. Then 2nd part refers to the managed object or the class, so that will tell whether it's a DN query or a class query.15:42And then at the last you will see a JSON format or XML format. You can request for any of them if ACI supports both of the format XML and JSON. Okay, and yeah, then you can also.15:58Do some filters, you can put some regular expressions or any of those things and you will be still able to, go deep into the query, right? Yeah, so.16:18Yeah, so with this I will be doing a demo. Okay, so this is a apic, which is reachable from my laptop. Okay, yeah, we'll do it quickly, thanks. Thanks for the time check. So if you.16:34The APIs are also like.16:54Available on ACI so you can see there is an inbuilt API inspector in apic. So you can just do, so this will give you live live API calls happening on the apic. So if I just go here.16:58And click, you will see the API is getting updated here. Let me just do a quick tenant. I let me go to EIS tenant here and then let me just create a.17:17Application profile. So we have this test, so generally when you create a create a thing, it will be a post message that will happen in the background, so.17:36Yeah, I'm just creating the EAS test ok and you should.17:51Yeah the feedback to say the phones are really small to see if we can make them a bit bigger. Yeah, sure. Yeah does it look better now?18:48I think little better ok so I'm just creating a bridge domain and created a application profile along with EPG.19:08So if you see now, there is a post method that has been done and what it is modifying is it's creating a FVAP, which means application profile which has a.19:27Tenant which is inside tenant 01E_EIS. The BD name is EIS test zero two and it is also having a children object called.19:44FVAPG which means EPG and this is the name of the EPG. This is the whole designated name of this particular EPG, which means it is inside an application profile and that application profile belongs to this tenant.19:59And you will also see attributes of the EPG here. So yeah, so if you just go further, you will see what is the IP of that BD and other things, right? So.20:17Yeah, so that's how you can use the API inspector to if you don't know which APIs are getting used, you can just do API inspector and you will be able to find out the exit APIs that are needed for a particular operation. Yeah, so with that it's.20:33End of the demo and you can take it back, thanks.20:53Thank you, thanks Approva. Let me quickly share my screen. For folks on the Slido, we have one more question for you. Let me quickly share my screen. Those have already logged in, you may see the question already.20:58But for the others, you could join the Slido by scanning the QR code or typing the number that you see on the screen and the password is network as code. So what tasks would be good to automate for your ACI network?21:17And if you say others, you could use the chat to type and tell us what are those tedious tasks that you still do manually, right? Clicking in multiple places on the epic or using the CLI. Share that feedback with us so that we could help you automate these use cases even after the session ends, we'll be in touch with you to see.21:35You know how we can help you with that. And for those who have selected, let's say building a three tier application or creating static port bindings, these are used cases we already have. So after this session, when you share the feedback, do let us know if you want us to get in touch with you to help you deploy these, in your.21:55Our environment. Deepak to access Slido you'll have to scan the QR code that you see on the screen and type in the passcode, networkers code.22:15Okay or Deepak you can just add your answer on the chat. We'll take it up after this. So moving on to the next one. So now Abruva was talking about APIs, right? So why is it important for us to understand APIs is, see, you could do a lot of.22:23Information network as code, but if you don't understand the fundamentals and if there's NO human in the middle, you know.22:43We are not moving in the right direction, so it's very important to understand the foundation before we could automate on top of it. Now with that being said, API is, is one way where if you clicks an object on the GUI, e.g., in ACI, everything is through REST APIs, so there is an.22:51Object, you get the value of the object or you put the value of an object.23:11Now in the evolution of, you know, DevOps or let's say before we got into network as code, we also had Python SDKs. We still do. We have Python SDKs, which makes this job a little bit easier for us. So if you look at the left side, ideally if without these SDKs, right? Software development kits.23:15You will have to write the Python code for everything. Like how would you frame that API, right? That long, you know, URI that.23:35Was sharing, how do you build that up? How do you push it to the epic? How do you handle the response code? So all of that you will have to script that in your Python code, which can again be tds. So then you have some SDKs like the screenshot that you see on the right is the ACI toolkit SDK, where if you see.23:46How the tenant VRF and BD are configured, right? Tenant it just says tenant off and then the name of the tenant. So it's very simple. You just call tenant, you give the name of the tenant in parenthesis, and that's how you create a tenant. Similarly for VRF, if you want to create a VRF called as prod off, which is part of.24:05The previous variable tenant, right? Then all you have to do is, you know, type this one line that you see for the VRF and similarly for the BD. So it makes it a lot more easier than just using Python, as you can see on the left side, to create a tenant, you would have to do whatever you see on this box here, right? You will have to.24:25To do all of that through Python, but with toolkits SDKs, it becomes easier as you can see on the right side.24:45But again, it's still not so easy because even though I've said tenant is equal to tenant of ATX 16, I still have to do session.push to push this. I have to check what is the response, is the response ok? Is the response not ok? How am I taking care of all of that is something that I still have to take care of.24:53Now, where does network as code come into picture is I want even more abstraction. Don't tell me how do I have to manage the response code? Is it a 200 ok? Is it a four oh four? I don't want to do all of that. I just want to declare that this is this is the tenant that I.25:13I want on my ACI, this is the VRF, this is the BD. I want to do only that. Let somebody else take care of everything else. So that is where network as code comes into picture.25:33Now in before we go to networkers code, a lot of people think that infrastructure as code is maybe a single tool, it's a single application. No. Whenever we say infrastructure as code, it's the whole process. And if we take a moment and think, right, for all of you who said, I know it's a very few.25:46You know, percentage who said we are still using CLI, but just take a moment and think, right? In a world where cars are driving themselves, why are we still configuring data centers through CLI? So which means we have a lot of catching up to do. An infrastructure as a code is a process that helps us provision our infrastructure.26:06Through code instead of doing it manually.26:26Now network as a code means if you see on the left side, right, part one is what you just declare. So I'm just saying epic, this is my node, this is my serial number. It's very declarative part of this tenant, let's say name is marketing. And we'll talk about what is GitLab. Gitlab helps you with version control.26:29Which means I don't want to directly push something to the production framework or workflow, right? I want to 1st do it in a test environment, maybe have some approvals in the workflow. Let's say the lead in the team or L3L4 engineers, they approve and then it gets pushed to the main.26:49Production branch. And in case something goes wrong I want to roll back to the previous known version. So a lot of those is possible through GitLab. We'll talk about that in a bit and you have the ITSM process as well integrated Nexus dashboard.27:09For those of you who use Nexus dashboard, you know, you have something called as pre change validation, pre change analysis in Nexus dashboard. So we can integrate that as well. And finally you push the configuration to the epic, which is the last step. Terraform ansible, these are all.27:25Tools that help us with infrastructure as code, so you can define what is the policy that you want, the access logical policy etc. Use terraform or Ansible to push your configuration to the epic. Now.27:44Network as code is able to give you the level of abstraction that you see on the right side of the screen. If I want to create one tenant named Cisco Live with two vrfs in it, this is all the file that I need. So this will be a YAML file, but this is all that you need. Without.28:00The network as code data model, so these models are built by experts who have years of field experience. Now without these models, if you just use Terraform or hashicorp coding configuration language, right? It would look like something on the left side. So you can see that.28:19Resource ok I think I saw a question that says do we have to know JSON XML etc. That's the beauty. You can continue with the logic, yeah? Okay, ok. So as you can see on the screen, without the network as code model, right? You would.28:39See what is there on the left side if you just use terraform. But networkers code has a lot of inbuilt data models designed by engineers who have years of expertise and that is where you're able to get the abstraction on the right side. So all you need, like I said, is just a file with what looks like.28:59It is on the right and that is all you need. Everything else is taken care by the model. And these models, as I was telling you, it's built by network engineers, years of experience, best practices that are baked into it. So we just declare, again, if you see on the snip on the right, what is the.29:18Tenant, what is the VRF, what is the BD? We just have to define that what is the state of the epic that we want it to be. Everything else is taken care in the background.29:38And there is also segregation. If you want to push some policies related to nodes, you know, you could just use the, that node or that data model for node policies or if you want something for the ACI access policies, you could use the corresponding data model and.29:50You might be thinking, hey, you're telling me there's a lot of data model, right? Anshul will show you in the demo just before I pass it to him. So when you use Terraform to push some configuration to your fabric, all you need is.30:07I would say two files maybe. The 1st file is to initiate, you know, Terraform to get the modules, the providers that you need, which is like maybe five, six lines of code. The other file that you would need is the actual configuration that you want on your ACI. Now this file, let's say you might be asking.30:23Asking a question, you know, there's a lot of data model. How do I know where to put the VRF, where to put the tenant? It's all beautifully documented on Netas code.cisco.com. We'll share this with you so you could go to the data model with examples it is documented there. So you can just pull that out, replace it with your VRF name, your tenant name.30:43Etc and then you are good to go.31:03With that being said, and of course if you want to set some default values, there's provision for that as well to be set on terraform. So Terraform is a way that will give you a lot of abstraction. Just define what is the intent and you can push your configuration to ACI. With that, let me pass it on to Anshu.31:05And for the demo.31:25Yeah, thank you but i was just asking asking the question from Deepak around the the APIs, I think that is the concept I will try and just display and show that was saying that for the network engineers who manage the fabric.31:30Your YAML code is just like your UI, so whatever change like in the UI you would make a change, same way you make the change in your YAML file, and that gets translated into your actual, you know, whatever the intent was. If you're adding a VRF, a VRF will be added, right? So that becomes very, and so so that and that.31:50Outside of ACI as a code that it extracts all that complexity of managing the code.32:10Or the APIs everything so that that all is abstracted by this framework and what what you have to take care of is just managing the yaml file and then that becomes your single source of truth. So let me just share my screen. I think that maybe a better way to do it.32:17So now ok but I've just taken the screen from you. So now as you see over here, right? Now this is my YAML file, I think what was saying, and this just defines my intent. I'm just saying that I need to.32:38Have a three year architecture in which I have a tenant, a VRF, a bridge domains application profiles, and I've defined that in a YAML file in terms of a name value pair. Now this remains my, this remains my single source of truth in terms of what I want, what I want in in apex. Now obviously there is.32:55A lot of, you know, code behind it.33:15Which is ACI as a code and which you would find over here in this in this modules and and and a lot of other other sort of, you know, if I go to the Terraform modules, you would find all these code which is managed by ACI as a code, but for you, you don't have to worry about this. What for you what what?33:17Does this, this input file and this would represent what you have in in in your apic. So as you see over here, I'm looking for a tenant called anshul-terraform. So if I go to my Apic and I type anshul_terraform, so there's NO matching object.33:37Again that. So this this doesn't exist.33:57So now what I will do is I'll I'll have to have to push this into, Apic controller, right? So like showing that there are two ways to sort of push the config into into into apic, but in terms of a definition.34:00So like you could have, so 1st one would be Terraform plan, which a Terraform plan what basically does it, it it Terraform has got a state of its own, right? So whenever whenever I'm pushing a config from my input file which is my YAML file onto apic, Terraform would.34:18Also, you know, persist that.34:38That that that file or that that state into its own database. So whenever I try and, you know, push this config into into Apic controller, the 1st thing I would do is Terraform plan. And what Terraform plan does is it compares this intent which I have in my file over here.34:40Against its own database. Now currently currently the database is empty because I had I haven't pushed anything. So I'll do a terraform plan it will compare compare this input file with its own state. It won't, it won't actually.35:00Push anything into the controller by just just comparing the intent with what's in the it's in the Terraform database. If I do a Terraform plan, now it has just told me that if you were to do Terraform plan, it would add 24 objects.35:16And there will be NO change or or destroy. And those 24 changes represent all these different different 24 changes that I have mentioned over here. So now it's just telling me that this is what you have to add and if I'm ok with that, then 2nd step for me is to do Terraform apply. Now Terraform apply will.35:31Will actually push this, this change into into epic controller and it will also update this Terraform database with this change. So let me do Terraform apply.35:51And now this will actually go and you know push this thing into the epic controller, right? So as you see now it says I've added 24 resources. So now my, my.36:02My form should be there. So if I click on this, you can see it's over there. If I, you know, skim through it, I will be able to look at all the objects in the same, same hierarchy, which I have created over here, right?36:23So it may take time. In the meanwhile, what I can do is, I can add I can remove this database. Let me remove this particular bridge domain and see how it does because we want to show the macd. So we have what we showed you.36:41Just create, but now we are modifying it. So we are removing a particular bridge domain and then let's see.37:01So hopefully this is so fast. So as you see over here, now I've got all everything I've created from over here, my apgs, everything is available over here and I can see that, right? But now obviously there's a bridge domain I want to I've got.37:09Two bridge domains over here, as you would have seen. Okay, it's taking some time to open ok so anyway, let's let me, so what I will do is as you see I've removed a.37:24Bridge domain over here and let me see now how how my plan, how my plan responds because obviously my my Terraform database still has got the state what it was earlier, but now in my yaml file I'm removing a bridge domain, right? So now my Terraform plan.37:45It should show that as a diff, right?38:04Yeah, so now because I have said that I want to remove this bridge domain, it's saying it will be removed. So it's telling me exactly that you have made a change and if you were to push this change, this particular object will be destroyed. So.38:09Now I have an idea that if I push this, it will be destroyed. If I want that, this is what I wanted, I'll say yes and apply it.38:28And if I don't want it, I'll just say there's something wrong I'll just go and do corrective action. So now if I do apply, it will push this change and it will remove that particular so as you see over here, I've got two BD, two D there are two two BDs or BB two.38:35Two NDB one. So if this thing goes through.38:55So now it's telling me you want to remove this thing. I said yes. So it will remove this DB two and I won't be able to see this over here. So as you see, that thing is gone over here, right? So that's the life cycle of basically managing it via.39:00And like I was saying from from an operations point of view, this just becomes a single point of truth. You won't even have to go and see if it's in the GUI or not. Once you're this thing is proven, proven, it's been tested, then this becomes your single source of truth and you can just.39:18Manage it from here, right? So, ok, I hope that was clear, but the key concept is yes, you don't need to worry about, you don't have to be a ansible expert, you don't have, you don't have to don't have to be a terraform expert. You don't have to know about APIs, I mean, if you know about it, that's good, but.39:36In generally, if you are operation or you're operating in your operations person who wants to just manage and add hand and remove policies and contracts, what matters to you is this this YAML file, which would generally be stored in a version controls object.39:55So ok so I think I have I hope that concept was clear, but let me pass on, let me just move on to the next slides. Alright.40:11I guess how do you, how do you get started with this? So 1st of all, if you want to install download the terraform binary in your platform and you place it in your path variable, then you create a project directory, create a yaml file with this input file which has all your.40:31Intent of what you want in in in ACI, in ACI.40:51And then you have a call file called main.terraform, in which you have the, the modules for network as code and you you provide the details of where it should download the the Terraform provider for ACI.40:55Then yes, you have to just set up your credentials, you have to provide the details of your Apic controller, then you initialize Terraform to using Terraform in it and then you do a Terraform plan like I was showing you earlier. Terraform plan will just compare your young.41:13File with its own state and tell you what the diff would be if you were to push in the change. And if you push in, if you do terraform apply, it makes those changes in the Terraform database and it puts it push pushes it into the AP controller.41:32So Yeah I think if you can just answer this question in the meanwhile, so team, who.41:46Whatever has explained so far, right? This is something that you can do in your environment as a test case, right? You don't have to do it in your production, but in your test environment, and this would hardly take, let's say.42:04Even if you're doing it for the 1st time, right? 1 h if you follow the steps that we have shared, especially in windows. You know, if you want to use Terraform it's just an exe file, download, configure those two files that just spoke about main.TF and the data file, and then you could see it live in your environment. So we'll share the details.42:19Of that as well. I can see 95 % 90 % of you say you would like to test it out, we'll share more details on that after the session. Please do try it out and if you have any questions, we'll share our mailer as well. Reach out to us so we can support you so you understand how this works.42:39Okay, thank you so I think the terraform state file is just a file it's actually whatever changes you have pushed into your epic controller, it maintains a state of that internally in its own database.42:56And it represents that the way it was showing when I was doing plan, it was showing that in that, you know, in its own hashicorp language, so it stores all that state in, in that that format. And so that so that database is actually a state file what you were showing show showing earlier. The split plan and obviously after the after this.43:16You will please reach out to us if you've got any queries concerns, if you wanna get this thing started in your environment, please do reach out to us to the to the team and we'll send you the details of how to reach out to us and we would like to work with you to at least have this proof of concept started in your environment and then you can take it to your production. Obviously you don't want it to take it to production.43:36But as you know getting it started and getting it whether in your test environment would be a good start and we can help you do that. Now, another thing.43:56So the state file is not, we don't have to maintain that. The Terraform itself maintain that and it's not something you modify it yourself. It is modified whenever you do a plan or apply. The plan apply, basically apply, apply would just change the file with what with whatever your intent is. So now I'll move to the pre change.44:05Part so other thing is that the complexity of config and data model increases, you would want to automate the validation, you want to validate before deploying to make sure whatever changes you are doing through are what you want. And you would want to do, you can do a lot of validation with this the schema format and that's the beauty of it. You can follow.44:25You can format the validation, you can check the f the format of your YAML files in terms of the syntaxes of your input objects. You can check the semantics in terms of logical consistency that if there are relationships between different objects, do they conform to that and you can do compliance, you can put in rules over here.44:45In in in your in your files to say that, e.g., you say you could you could say that you don't you don't want a bridgenet bridge domain subnets to be overlapped or they should be unique. So all those compliance rules you can put in in this framework.45:05So pre change analysis is a feature which can be done like what what next to dashboard is just like a digital twin of ACI. So whatever whatever changes you make in ACI, they are just represented back into Nexus dashboard and pre change feature it can be used to assess the impact of particular change.45:23Applying it to the infrastructure. So like I was saying this dashboard maintains a snapshot of your ACI framework. So whenever you do a change, it it assesses that change against that, against that state and tells you that is it a good change or a bad change? Will it impact lot of other objects or it will be ok? So I think that's a very good feature of.45:43That's the dashboard you can use.46:03Part of your pre change validation when you do when you do changes via the pipelines. I will show you shortly. Then again test automation is another part that once you have done it, but done if you change it, you want to make sure that the changes is fine. And for that we use a framework called robot framework.46:05Now again, I'm just telling you these things because just to help you understand how it works, but obviously when you are operating it.46:25Ultimately what you need to worry about is just that input file YAML file, that is what you do that. And then either your change was successfully, you say the change is successful or you have an error, right? But obviously if you do test automation, it will execute all the tests relevant to your change and give you HTML file with two as an output.46:33So as you see there are various kinds of tests conflict tests to see whatever you, whatever change you make you make is in place, health test to make sure infrastructure is against its previous state in the operational state to make sure your your your your your your network is healthy, it's up, the BGP and peering.46:54Now Git and version control are very important as well because like I was saying get version becomes single source of truth. What I showed you in my VS code was just my local copy, but normally you would have that in version control. And then the version control makes the it keeps the version, so every time you make a change, it creates.47:15The version. So it keeps a history of whatever change you have done. So every tenant contract full filter that is just stored in that single place of time, right? And every modification you do is tracked with an author timestamp and rationale. Then you have different branches and, and pull requests. So if you have a if you have a test test you want to do a test automation.47:33If you want to have that you want to do testing 1st, you can have a test branch and once that is finalized, you can merge that into the main branch and then push that into production. And then one thing is.47:53The good part is you can do a diff. Once you make a change, you can make a diff against your earlier version. And if you want, you can, if something goes wrong, you can always roll back to the earlier version which was the right version. So as you see with Git, you get validation, you can do dry run, you can do approval, and you can do.48:04So all these with get version control and CICD you can manage that. So CICD again stands for continuous integration continuous delivery.48:24And it's it's like a workflow and then by which this thing you can do validation dry and approval and your deploy, right? The one thing I wanted to just quickly touched upon is in terms of itil changing process. So normally in title change management process you have a request for change, when RFC is raised. The 1st part is you review.48:33The request to make sure that request is fine, evaluate the change, someone evaluates the change to make sure it's fine, there's approval and then you coordinate the implementation. Now same, same thing is something which we can, which we implement via CICD pipeline, the whole flow that whenever there's a change, it triggers a pipeline in terms of.48:53To say well something has been added or modified.49:13So it it because something has been modified or added in the in your source file, it would trigger a pipeline. The 1st, the 1st part of that pipeline would be the review the request, and that's what you were talking about auto validation of the request inputs. So there are a lot of, you know, frameworks available to make sure that whatever the whatever changes you have done.49:16Yeah, they've they confirm to they confirm to semantic validation, they confirm to compliance validation, they confirm to semantic validation, they confirm to the compliance validation. So once all that is done, then I get another that is all automated, these are just python frame frameworks to be able to do that. 2nd part.49:36How to evaluate evaluate that change where you pre validate the pre change validation like I was saying in exist dashboard, it compares your change against your the snapshot of your framework and tells you it's a good change or a bad change.49:56Then you approve the change, to say someone actually goes and approves the change to say it's there's NO impact to the change. And then if it goes down back to the change, then you just schedule the change and then either you can automate it automatically, you can deploy it or you can put that as a part of the change window.50:11All this can be managed via a CICD pipeline, which Partiba will show you shortly. So I'll pass on to Pratibhav to just show this concept in action for the CICD pipeline. Thank you all.50:31So team will share this link with you. This is in alignment to what Anshul was just sharing for you to get started with NAC ACI, right? This is a very.50:44Simple example, where there are only two files that we'll have to take care of. One is the main.TF and the other one is the data file where our actual configuration is in there and this has the steps that you could just pull this GitHub code and then try it in your environment.50:58Probably you can just walk through that. I'll just quickly exit and rejoin the meeting. Yeah sure yeah so yeah meanwhile brings up the demo.51:18We can go through the GitHub demo code which is present here. So basically you will have a modular file structure as Anshul was explaining. You will see this has this is using Terraform 1.8 and using.51:33Get to deploy the network as a code and it's maybe a very good way to start the Terraform experience because this is a very simple example and you don't, you may not have all the complicated things but this will build the foundation for you.51:53So if you just see here yeah so this is just creating a, like a structure, ok, these are the default values which you would be putting here, right? So you can just put your what is your apic IP and other things.52:11And yeah, so this is the example which it will create. Basically, this is the structure through which it will be pushing the configuration. Yeah. So, so you have apic, then you have tenants inside it. The name of the tenant is now.52:31And then when you create, the vrfs are part of the tenant, so it should come as a children of the tenant variable, and then the name of the VRF is day one-VRF.52:51And then, the bridge domains are also part of the tenant. So these are on the same hierarchy if you see, as the vrfs, right? And then once the VRF is created, you can call it inside the bridge domain, and then you can give subnets. So if.53:07If you don't want to give any specific values like whether this.53:27BD is a unknown unicast flood or not, and all those things, then it will just take the default values. If you just if you still want to do some attribute manipulation inside each BD, you will have to mention it as a part of separate variable here, whether you want to allow flood in this BD or not.53:33Those kind of things you can. I think it's just very small yeah ok ok yeah sorry thanks for sharing this I'm back. Should I go ahead with the pipeline demo as well? Just a second. And this is the.53:53So these are the application profiles which are again on the same hierarchy as vrfs and bridge domains, and then you can call the bridge domain. So we have actually given the names as IP values itself otherwise you can also give a BD name according to your needs.54:12And then it will create application profile named VLANs. It inside it it will create an endpoint group, and then the medi, and EPG will be called inside this application profile. So this is a very simple example, but yeah, this will help you.54:32Build the foundation that makes required for your complicated tasks.54:52Yeah, so I'll stop sharing and yeah, I'll give it back to thanks a lot Appreciate that. Let me share my screen ok I hope you're able to see my screen now.54:57Yeah. So team again before I go to the CICD pipeline, for you to get started, again, I'm just I reiterating this again because it's very simple for you to get started like in windows, you just need this a exe file. This is something that.55:17You can download, and then there are just two more files that I need. One is the main.tf, where you could, you know, put your probably your ACI details, where do you download the terraform modules from et cetera. And in this when was sharing the screen, all this is already part of that GitHub, so you just have to replace it with.55:37Your enrollment information and 2nd file that you need is to the actual configuration file. In this case, let's say it's just tenant and you're creating a tenant, right? So you just need only these three files, the exe file or the equivalent for other OS and the file where you specify, you know, where do you want to pull the modules.55:57From what version et cetera. A template is there for this so you can reuse that. Just replace it with your epic details and the last one, start small. Maybe if this is the 1st time that you're starting, maybe just this is all you can do. Tenants, give it a name, see what happens when you do a Terraform plan Terraform apply, and then you could, you know.56:17Build on top of it. So it's very simple. We did, shared one which was NAC ACI, a simple example. There's also one more NAC ACI comprehensive example. We shared this as well with you. Here if you see the data files, you can have it for more policies, node policies, access policies, etc.56:37So you could download this from GitHub.com and you could always.56:57Replace it with the objects that you need. Now having said this, if you remember when Anshul was showing you, right, he was showing you a Terraform plan, which means you're doing a dry run, you're not yet pushing the configuration to your fabric. Then he did a Terraform apply, which is where you actually push the configuration to the fabric. Now these stages.57:02Anshul was running it one by one as a command, ok? Terraform maybe in it to 1st initialize then Terraform plan to do a dry run.57:22Then Terraform apply. But in the pipeline, now we'll show you if you have GitLab integration, e.g., it could be Jenkins as well, but in for this demo I have a GitLab set up. You will have to do some configuration to make sure that your, you know, the, the project files are there in your.57:30Lab repository. So there is some bit of configuration that you will have to do, but if you need some support on this, you can reach out to us after the session. But how this Git pipeline works is that you have one YAML file that will define all the stages that Anshul was showing, right? It is all consolidated into one file.57:50So you could do the validate for syntax and semantic validation, plan, deploy.58:10Test if the intent has been met. If you want to do a notify, let's say you want to receive a Webex or a team's notification, then you can add a stage for notify as well. Now, all of these stages are automatically defined in this file, so that you don't have to run.58:16Each command, you know, one by one terraform plan terraform in it, you know, terraform notify, you don't have to do that one by one. This pipeline file, which is gitlab cI.yaml file has all the stages and you can just run it in one go. And we'll see the stages showing up on the.58:34Git on GitLab. So now if you see here, let me go to pipelines. So it's the same folder that I, you see over here, right? So this is what the folder looks like. So you can see similarly you have.58:53A data folder where I have only one. I'm just creating a sample tenant called as CSS demo.nat. So if you see here, let's say I'm creating a tenant named CSS demo_twelve or cSS_demo twelve. So this is the only one that I'm creating and you, I can see that file is present inside my data.59:12Data folder. So I have the data folder file is present. Gitlab CI.yaml file is where the.59:32Entire workflow is there in one file. Now let's say I do a git add, so of course there are steps to connect this to your GitLab environment if needed, we can take that up separately. So now I'm going to commit this pipeline. Let's say I'm just saying testing pipeline for EIS.59:38So now this is where the pipeline has been committed and I'm pushing this to my actual, you know, production or production or let's say staging environment. These are the details that I give for GitLab. So it's asking me about the credentials for GitLab. Once I give that, you can see on gitlab.59:58That a new pipeline would get triggered. Let's just wait for it to show up over here. You'll see another pipeline getting started over here similar to this which was run 13 h ago. So if I go to pipelines again.01:00:18Or you can just refresh to go back to pipelines let's just refresh this.01:00:37So in each of the stage that you see in the manual form, ok, you can see the pipeline just getting started, right? So now it's running the validate stage. In case your files, let's say had a syntax or a semantic error, then the validate phase four, they would pick that up. So you can click here to view the details of this.01:00:57Had there been a syntax error that would show up over here saying syntax error and so and so line number?01:01:18Or if you want to see the logs, you can just click on the validate stage and show the logs. Basically, what commands are being executed here is what is defined in your GitLab cI.yaml file. The flow is defined there. While this is running, probably in the interest of the interest of time, let me walk you through a pipeline that was just.01:01:25Done a few hours ago. So you can see this is the validate stage, then this is the plan. Like we said, it's a dry run. You can gather the output of this plan stage and you know give it to your Nexus dashboard if you want to do a pre change analysis, right? Give it to your nexus dashboard. It will tell you if there are any compliance or conformance rules.01:01:46Is that you're violating, so it will show you there and then this is the actual deploy. And finally you have the test stage. Now this test stage you can download artifacts for each of the stages here. And for the test stage, you will also get a report like this, which will tell you has your intent been met? Which means my int.01:02:05Intent let's say was to create a tenant. Was that intent meant? Vrfs etc. Or let's say not just the intent, right? I have some security standards in my environment and I want to make sure that whatever I'm pushing comply to those standards. So those sort of test cases, as Anshul covered in the testing framework.01:02:25Right, so you can get a full fledged report to say which test cases passed, which test cases failed. So that is possible.01:02:45Through this pipeline. In addition to this, if you want to add that nexus dashboard pre change validation, you can create another stage here if you want to notify your Webex or to your teams on, you know, the status of your pipeline, et cetera, you can add one more stage. So you can define whichever stages work for you and then you.01:02:53Can trigger this pipeline.01:03:13So this is how GitLab works, in the background, we do have some configuration to make sure that whatever I see here, right? Like I see a set of files over here, e.g.. So this same project is being maintained on GitLab. So there's version control as well.01:03:15At all I want to roll back to a specific version, that is possible through this. If at all I want to do some approvals like I previously mentioned, right? In case you want to make sure that your team lead has to approve before anybody can push a pipeline into the production workflow, then those sort of approvals, all of that is possible with.01:03:35This framework. With that being said, I know I saw.01:03:55Few questions around, hey, you know, we don't want to create the entire YAML file by ourselves. We don't want to, you know, it's, it's a little tedious for us to create the YAML file. Could there be somebody who can help us or or there was one more question I saw in the chat that said we have an existing.01:04:00ACI fabric, how can we do a brownfield import so that later we can go ahead and maintain the state file? So all of these are possible, but that comes as part of Cisco services as code, but the, so to tell you it is feasible, but.01:04:20At this point of time, what we are trying to focus on is how do you get started, right? Where do you, how do you get your hands dirty to get started with terraform, with the CICD pipeline? And later when you want to do it for your brownfield import for your production environment, we have a services as code team.01:04:38That could help you with that. Importing your brownfield configuration, building those YAML files for you, you can just input an Excel and YAML files will get built. So all of that is possible.01:04:58Now with this being said, there was one more question, right? You know, versus Ansible and Terraform, when would you suggest that we use Ansible versus when would you suggest using terraform? So, let me move back to the slides for this. It is possible to, you know, use Ansible for.01:05:11Let's say you have some use cases, right? I'll show you here.01:05:30Let me just move to this one. I'm moving to, so the pipeline got done successfully by the way. And if you want to download any artifacts for each of the stage, you can. I'll just move to another, workstation that I have to show you the Ansible demo. So whatever we have done so far is using terraform, right?01:05:33Either manually you do the plan, deploy through command line or you want to run the whole pipeline together, integrated with GitLab, that is possible. But most customers come to us with specific use cases. They don't want to say, hey, I don't want, you know, my entire production fabric to be migrated. I have a small.01:05:53Ask static ports maybe I have to create tens of static ports very frequently and it's tedious for me. Can you help me automate just that? Or let's say I want to create a new application, right? Anshul showed you using terraform. That is also possible using Ansible if that is your use case.01:06:13So here I have an Ansible demo.01:06:33Where in ansible, everything is called as playbooks. So as you can see here, the same three tier application, you know, you can create a VPC protection group, the tenant, the BDs, contracts etc. But in ansible, you will have to run this one after another because Ansible does not automatically take.01:06:36Care of let's say your tenant has to exist 1st and then your VRF gets created, right, for that tenant. So that sort of order needs to be taken care by you or alternately if you don't want to run these many playbooks, right? So I've broken this into multiple playbooks. 1st is I just create a VPC group for my.01:06:56Leaf switches, then maybe I create a tenant, then BD, then contracts and so on. But I want to.01:07:16Let's say do it in one go, then I can create a playbook which will call the other playbooks in a certain order. And now all I have to do is I have another file called as inventory file where we obviously have to specify what where do we want to push this configuration, right? So in inventory, I have my epic BTX where I want.01:07:22To push this configuration. I can log into the epic just to show you what is currently there and then we can just push these playbooks.01:07:42And see what happens. So as you can see here, these are the three tenants that I currently have. And let's say I'm going to the same folder where I have the playbooks present. As you can see here, if I do DIR playbooks.01:07:52You can see all the files that I just showed you, but I'm going to run only the last file site.yaml because that in turn calls all my other files. So I can just type one command ansible playbook and then call the playbook that I want to run which is site.yaml. So once I do this Ansible will go to that site dot.01:08:08Dot YAML file, it will check, ok, I have to 1st call this playbook, second playbook, 3rd playbook, and then this is how it's going to push the configuration.01:08:28So we get a lot of requests from customers saying, hey, I don't want to maintain the state file. I don't want all of that because my use case is very simple, right? I want to push a specific configuration to my epic. That is all I want. I don't want, you know, to understand what is the current state. Maybe I don't even want GitLab integration, but I still.01:08:38You want to automate this task because it's hectic, it's it's tedious for me. So then this is the way to go. Define your ansible playbooks, create your inventory file to, you know, put the epic credentials in there. And then as you can see now on your epic.01:08:58The three tire wrappers created. You could see that you have these application EPGs, you have static port bindings, you know, be it a normal port channel, be it a virtual port channel, a VPC, so all of that gets defined over here. Contracts, we have added contracts as well. So if you.01:09:14You want to just configure something on ACI without having to worry about anything else, you could also consider ansible. But if you want to use the network as code data models that Cisco is providing, that level of abstraction, then Terraform would be your way to go because Cisco maintains those data models through Terraform.01:09:34Now one last thing that I would like to comment before we pause for Q and A is, see now you might tell me about you still put all your, you know, configuration into YAML files. E.g., I showed you site.yaml, right? So this had all the playbooks together, but there are.01:09:54The individual playbooks, e.g., EPG domain mapping is a playbook. VPC protection group is a playbook. I have customers who tell me, we don't want to do all of this.01:10:14We'll just fill an Excel sheet and then you make sure that that Excel sheet translates into playbooks and pushes it through ansible. Simple example, right? Static port bindings. We all have a lot, we all create a lot of static port bindings and it's too much of clickops. So I I will just give you an Excel where I'm gonna put the stat.01:10:25And you push it to your ACI. Now that is also possible. I'll just show you a quick example here. This is what froze my laptop a while ago, but let me just try this one more time to show you a quick sample of that. So here.01:10:47I have an Ansible playbook. Let me just look at 2nd demo so ACI ansible demo two. So my input file in this case is going to be an ACI.01:11:04Config Excel sheet because it's difficult for me to configure everything manually. So here I do have some static quotes created on the Excel sheet. These are the you may not be sharing the Excel file. Oh, ok, thanks, thanks for that. Let me just share the other screen.01:11:22More sharing options, share something else. Thanks a lot of. Okay, I hope you're able to see my Excel sheet now.01:11:41Yes. Okay, so here as you can see, we don't want to build the files, the static ports all by ourselves. We'll give the input in an Excel sheet, you take care of the logic for us. So we can also give you a proof of concept lab where that works. So now if I go to ACI ansible demo too.01:11:57It's the same things that I showed you. I have a playbook, I have the inventory file, but the only difference is my input is an Excel file, and there is an additional piece of python code which will pass this Excel file to get the objects that the Ansible playbook needs. But to run it, it's the same thing, so I can just say ansible.01:12:17Playbook?01:12:37And then I can run the playbook. Here I have something called as excel side.yaml. So now this will push the configuration. So it's passed the Excel to see these are the VLAN pools, domains, et cetera, and it'll now push the configuration here. While this does this, let me just take you to the.01:12:38Epic to show you this is the epic.01:12:58Until a while ago it didn't have something called this_ops, so this tenant does not exist, but now let's wait for this to finish and then let's check the same tenant again. So it's creating a tenant, it's creating the vrfs.01:13:01Creating the BDs, subnets, etc. Epgs, application profiles. Let's just give it maybe 20 more seconds and then we'll go ahead and check this tenant on the fabric.01:13:18Let's just go to all tenants ok as you can see, this tenant got created and this is through ansible. So you can see that it says through ansible. Now you can see all the objects that we had on the.01:13:34Excel sheet, right? E.g., static ports, you can see that over here. These were the ones that we had in the Excel sheet.01:13:54As you can see, one/ten and there was a dummy interface policy group, so you can see that over here. So again based on your use case, there are different ways of doing.01:14:01You know the configuration of configuring ACI. Now the last question before we go to the Q and A for you all is, let me just put this in presentation mode. Please go back your slider. We just have one last question for you, and this is.01:14:17Probably the most important question. So we've already covered ansible. We've covered the demo. Yes. What support do you need from us to help you in this automation journey? Especially.01:14:35We sent a survey yesterday and quite a few of you have filled the survey and we had two sets of I mean the majority of votes either said we are just exploring automation at this point of time or 2nd set said, maybe we are using Python, some ansible. There was only one.01:14:50That we had for Golang, but mostly Python and ansible. So at this point of time, tell us what is that support that you need from us to start automating.01:15:10This is not going to be a 90 min session where we finish off and then, you know, you have some learnings, takeaways and we end the story here. We want to continue to work with you to help you with your proof of concepts so you can see the value before you could take it to production. Okay, I see a link of documentation. Yes, some.01:15:21Certainly, we will share that with you over an email.01:15:40We'll also send another survey probably three, four days later, so I strongly recommend all of you to try that NAC ACI simple example that was sharing that try just that and tell us how did it work for you. We'll follow up with you three, four days later, if you ran into any.01:15:43The challenges.01:16:03Let us know, ok? Excel sheet with input value. Okay, where can I get the answerable or terraform? Classes, is it? Okay, network code lab access. Oh, ok. Recording video will share Excel sheet with input value. The one that I had showed in a demo is a reference.01:16:04If you want any other columns in the Excel sheet, any other rows that can be customized, it's all just Python code in the background, right? So the one that I shared was just an example. I could share that with you.01:16:24Lab. Yes, for those of you who say, you know, hey, we don't have a production environment. Can you give us a lab maybe for just 24 h for us to test? Do drop a one on one email with us and we'll see if we can get you a lab for you too.01:16:38Test this. Okay, I see most of you say working, let me keep keep typing in this typing this team. I'll just stop sharing but I'll keep the poll open so you can share this with us. We'll pause in case any of you have more.01:16:55Q and A?01:17:15More questions to ask, let us know and we'll take them up. I know we are 8 min, we still have eight more minutes, so hopefully, we have shared or addressed most of the questions on chat. If we have not addressed any of them, we will take them up and get back to you over an email a little later.01:17:17I have a question Nexus dashboard we can achieve ACI as code. Prasad I'm not sure I understand your question. So Nexus dashboard, if you're looking at telemetry, right, from a telemetry standpoint, it has telemetry capabilities for ACI, but if you're.01:17:36Asking me, can I push those sort of configuration from Nexus dashboard using the data model ok using Nexus dashboard configuration part. Okay, so if you have multi site, then your Nexus dashboard orchestrator can help with configuration or if you're having NXOS based fabrics.01:17:56We have a session next week on VXLAN as code, where we would use the Nexus dashboard APIs to configure the NXOS fabric. So that is also possible through Nexus dashboard. But if you're asking me, I just have a single fabric or a single pod, can I use Nexus dashboard to configure ACI? The answer would be NO because.01:18:16Because Nexus dashboard is for telemetry. So you can do pre change analysis, delta analysis, et cetera monitor for anomalies advisories, but it's not a place for you to push configuration unless you have multi site in which we can use the orchestration feature.01:18:36Thanks for the question, Prasad. Is this session was with Ansible or terraform? So this session was to give you a primer to understand where have we come from, right? From APIs through Python, through the network as core data models, how is there a lot of abstraction? So.01:18:50The session was to cover that. I touched upon Ansible briefly towards the end because some customers ask for those use cases. We don't want the entire model. We don't want, we are not yet ready.01:19:10To do, to go that path, but static port bindings creation is very tedious for us. Can you help automate it? So for that, I touched upon the concept of ansible playbooks, but apart from that, the main focus was network as a core through Terraform for ACI.01:19:24Okay yes we'll share the video, we'll share the recording with you. Ok, I have prod ACI but not pre prod environment. We'll share this ok let me just bring up the last slide. So we'll share this.01:19:46Okay, we'll share this email address with you. Let me just bring this up on the screen real quick. I'll share this on the chat as well.01:20:06So we have call to action. We have two, three action items for you. This is the most important one, right? So 1st thing, when you exit the survey, when you exit the webinar, you will see a survey. Give us your feedback, tell us how can we help you?01:20:15Start your automation journey or evolve in your automation journey. Take that moment to share your feedback with us so that we can support you. And like I said, this is not a 90 min session where we just wrap off and everybody's done. We want to continue to work with you with your proof of concepts before you can make that decision to go into production.01:20:32So that's where we come from. If you have any queries, if you have any special requirements or use cases, right? This use case, how can we automate, show this for us. So we are a show and tell team, so we will show you how it's done. So this is the email address, and ask-expert insights-CAI export.01:20:52Cisco.com, we'll share this on the chat. You can write to us. This is the session to, this is the link to register for the upcoming sessions. So this is a series. Today is just the 1st session in the series. Next week we'll cover network as code for VXLAN based NXOS fabrics through Nexus dashboard, right? So.01:21:12We'll cover that next week. The 3rd week, it gets even more interesting. We'll bring in AI. We'll talk about llms, MCP server, and how can you bring AI? All of this is just automation, right? But we are in the error of AI, so we'll bring that as well in the 3rd week and we also have a dedicated Q and A session for you.01:21:32Today you are all using the chat to ask questions, right? But the 4th session in the series will be dedicated for you to unmute yourself and ask us questions live. So we have a 60 min dedicated just to take up your questions, so do register for those sessions, join them. And the last one, in three to four days, you will.01:21:52See an email from us asking you if you've tried the NAC ACI sample code that apoor was shared. Please respond to the survey. Tell us if you're stuck. Tell us if you see a challenge, let us know so that we could help you with it.01:22:12So with that being said, that brings us to the end of this session. I know we have two more minutes. We are unable to register the personal mail ID for this. I'll suggest that you create a CCO ID. You could just go to cisco.com.01:22:27Register and create a Cisco ID and probably use that or.01:22:47You know, or if you're still facing any challenges, maybe just drop a mail to us. I'll share this mail on the chat with you. So this is the act, this is the call to action. I'm just putting all the four points on the chat. So the 1st one is take the survey, second one is follow the schedule register.01:22:54For the upcoming sessions. 3rd one if you have any queries and 4th one is respond to the survey in three to four days. So I've shared the details on the.01:23:13Chat, please bookmark how you can reach out to us and we'll get back to you on that. With that, I missed today's session, so we'll share the recording. What is the roadmap for ACI automation? Venky probably we could use.01:23:24Speak about this a little offline, but from network as code we are evolving to services as code. Like I said, what Cisco services can provide you right in terms of brownfield import, agent take ops capabilities, so that's where ACI automation is heading, but if you're interested in something specific, do reach out to us over email and we can.01:23:44Have that conversation.01:24:03Okay, with that, I hope you all enjoyed this session. We still have around a hundred folks on the call, so thank you so much. Do share your feedback with us and do join us for the next session. Thank you, Apoora for joining us. Thank you everyone. Hope you have a good rest of the day.01:24:06

About this Video

Author : Cisco Customer Success

Uploaded : August 07, 2026

Data CenterApplication Centric Infrastructure
AI summary icon

AI summary

This recording shows the evolution of Cisco Application Centric Infrastructure (ACI) operations from CLI and click-ops to Cisco Network as Code. It explains ACI REST basics, DN and class queries, and the Cisco APIC API Inspector, then moves to a model‑driven approach with Cisco‑maintained Terraform modules and YAML intent to create tenants, VRFs, bridge domains, and EPGs using plan and apply. It builds a GitLab CI/CD pipeline that validates syntax and semantics, performs dry runs, deploys, and verifies outcomes, with optional Cisco Nexus Dashboard Pre‑Change Analysis and test automation. It also covers targeted day‑two use cases with Ansible playbooks and Excel inputs for tasks such as static port bindings and three‑tier apps, plus version control, approvals, and rollbacks for repeatable, low‑risk changes.

  • Shows how to build and deploy ACI configurations with Terraform data models and YAML intent, reducing manual effort and errors.
  • Details a CI/CD pipeline with GitLab and Cisco Nexus Dashboard Pre-Change Analysis to validate, test, and safely promote changes.
  • Demonstrates automating day-two tasks with Ansible and Excel inputs for fast, consistent outcomes.