Installing Ansible and Automating Networking Configuration

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] okay we are back for another episode this time we will be installing this a general lab management server is going to be just a buncha server and we're going to be installing ansible on it and giving it a test run real quick just to make sure we were able to use it not very complicated but a lot of people are getting into ansible and automation and stuff like that the great thing about ansible is that it doesn't require any software to beast all installed on the remote devices so you think of a lot of automation type agents like maybe some people are familiar like in Windows environments you'll be using something like Altiris or for those in devoxx you'll be familiar with things like puppet and stuff like that those require agents that run on the clients that you're managing with them ansible uses total antelopes totally based on remote connectivity protocols like SNMP and SSH so that makes it great for Network Devices because it's just going to log into device via SSH to manage it that way or retrieve data from the device using SNMP and that is exactly the kind of automation tools that we need for legacy network devices that don't have ap I spilt them yet so the csr 1000v does have a basic idea API but I think for most general usage ansible is a great start to getting a lot of configuration done on the devices so we'll go ahead and get this started so what we will do I was just checking out some other stuff we'll just jump into our hypervisor so I figured that the issue with chrome when logging is a web interface click the login button if you hit enter to login it will give you that ever sometimes but if you click the login button it always works all right so we're going to do is create a new VN this will be a new virtual machine will just call it bun to plugins bill and we'll be using a Linux OS family funky Linux 64-bit just pick this data stores fine and put two network adapters on it a gig of ram is fine 16 gigs of hard disk space is fine like all the all the basic settings will be fine links VMs work usually just fine with all this stuff for our host device we'll pick a datastore ISO file go to your images and click your ISO image that you uploaded to the data store select that next and finish it I think we should be good to go now if you've been following all of the videos that creative as far you'll remember I created a pfSense appliance that we will be running DHCP and what will be great about this is and this is why you should run it or or do this I think plugins vessel I mean after Theriot is that we haven't said if you remember for dynamic DNS of via DHCP so if you go to the DNS revolt resolver food it will register DHCP leases in a ditch in the DNS resolver so this is going to help us out with lab management going forward every time we deploying an instance of anything like a server or something like that um so it's going to fire right up we're going to install the Ubuntu server then you'll just go through the basic setup [Music] I mean nothing really thanks you're crazy here that we're doing so far all right so it's going to try to set up via DHCP what we need to do is make sure that network adapter is on our theme network I just want to fail otherwise so our host name oh yeah well that's fine well just was it as avanti next and we're not going to bother with that says a live server yep that is fine so if we want to look at what we have going on if you go to your operator your services are no go status you can look at your DHCP leases and I actually show that at least that wants to serve a reboots and presences hostname is I actually populate that hostname field which is pretty nice so we'll just do this and we'll just go ahead and write the changes to the disk configure to LVM so I'm just basically going SEO CSS all this stuff nothing fancy it's going to go ahead and partition this using its base recommended settings we just find so we don't need HTTP proxy server we will to install security updates automatically and I'm not actually just going to install all the things because one on I probably didn't need virtual machine nose [Music] I mean is a lab server so being able to test all kinds of things you want to test on a lab just convenient so I just want to hit install a lot of those base packages for my setup I'm going to want to do satellite host if I ever want to try to mess with the Simple Mail Transfer Protocol SMTP OS MTP so I'm going to pick satellite system because it's going to have to go to another machine or host for those of you who are unaware your local ISP usually blocks SMTP traffic from your home so if you try to send out SMTP over the appropriate port for SMTP and it will usually be filtered and that's how people can assess so they can cut down on a lot of spam mail servers that can get spun up in people's home environments usually from what I understand not because the end user is malicious but sometimes their computers get infected with malware or stuff like that and I'll be running something like that behind the scenes and that's no good so you if you're doing this from home and this isn't a DES this isn't a like a cloud server or something like that most likely it will be filtered and you'll need to set it up this way [Music] and we'll just like that out for now because we can always reconfigure it later so we're going to install the boot loader to the Master the seven master boot record and that is all so while that's booting we're going to go ahead and go to the ansible documentation page so we're going to ansible what we can do is believe isn't resources that's been a while since I've been here lose a documentation installation so you go so what we'll do is just go ahead and walk through the setup I actually don't have to do this through the console I actually should be able to do yes and you see a host name resolution works because the DHCP to DNS registration is working properly which is pretty awesome so if you didn't set up DHCP DNS resolution system I really advise you to do so it makes lab management so much easier and and I think doing it via PF sent to the very short fast and lightweight way to do it it's not a heavy appliance to run on your system so we're going to do sue or sudo however people pronounce that I would say sudo even though I know is saying Super User do but whatever I know I could also just a copy and paste it in front I'm going to type in new today what so it says unable to locate that home is copy and paste it oh because I misspelled it so that's why you copy and paste people so I'm going to leave that in there so someone can laugh at me and pick at me about that um so don't be fancy you just copy and paste oh you look like me and do stupid stuff so now we're going to add the repository that's done we'll go ahead and get update and now we will install it and really it's that simple now for those of you new to ansible i highly recommend you take time to read through some of the main documentation part of it I would definitely recommend this understanding how to create inventory files so it's an ini format there is a default host file in there but I actually recommend you create your own inventory file so we can just do them and then Tory matter of fact let's just get rid of the distractions and we'll just create a file called inventory and we'll create some groups of devices no we will second we would do group of devices called the CSR 1000 and beasts and all actually do because a lot of the configurations we will be doing only involved just the Tim routers there will be configurations that involve all 20 routers and 10 routers for switches 20 riders for switches but for right now what we'll do is just put them all under the one CSR 1000 be heading for the routers because we want to be able to check to make sure we can actually get to all of them and work on all of them so there's this cool format that is able to do where instead of having to do like r1 you know r2 blah blah blah what actually let me create two terminal sessions for this just so we can verify something I want to make sure we can ping using short names all right so everything is the short names we can use short names in our first file so we will actually do instead of doing like r1 r2 you know and list them all up r20 you're actually able to do our open bracket 1 colon 20 close bracket and that actually will dynamically reference all 20 devices and one go will do the same thing for our catalyst 3750 so will this 37 5-0 and we will also do the thing same thing so it would be switch 1 through 4 and that will be that and we'll also make sure we can think those to make sure we have them registered oops yes and they're all reachable from this host which is muy bien now what we will do here is you can actually scroll down you can group these underneath apparent and we're going to do that so we can also define some variables to help us out with that so if you follow this year you will see that they've defined a host group with host 1 and host 2 and another host group with host - and host 3 and they've made these children of the southeast host group so the southeast host group is actually a host one host two and host 3 because it's referenced both of those and now they're able to define a base set of variables for all of these so these different kinds of things like that and then they've also lumped this host group under yet another parent so you can do multiple inheritance so what we're going to do is actually call the iOS yeah we'll just call this iOS or we can call it io s devices so be a little bit more descriptive and what we will do is put here CSR 1000 V and we'll also do 3750 and now we will define some variables for these two iOS devices and we will do believe it is what we are going to need ah so here we go ansible you use into default association username you use and ansible ssh password this has never stored as variable in flight etics always use a ball but being that this is just a lab we are going to store it in plain text because we're rebels so if you notice the pattern up here the way to set a variable and your ini file is to use equals so we'll go down here and we'll pull these down so our answer will user is which is already answer phone so as a user if you Cisco SSH password it's up down looking for but it's the same thing for SSH connection times as well SSH password is also going to be just go there's also one for ask for connection for network devices let me make sure this is the right one sorry sssh paramiku there's one that we usually set to local try remember which one it is ah yes it is local Oh and the reason why is because your you're not actually going to send the playbook to the remote device if you look here local this connector can be used to deployed the playbook to the control machine itself which is going to be our runs a server that is because the remote device is unable to run Python these iOS devices won't run Python stuff arm said I mean this local device is going to actually execute the commands through a shell that it's going to set up when it connects to the device via SSH I believe this is all we need if not you're going to see me blow this up now to use at school we're going to use it an ad hoc mode right now so that means we're just going to spell out everything we want to do all online instead of making a playbook so you can do one-off commands like this so what we're going to do and if you want to see how that works you can also do and small that's H and this will give you everything you need to do so we will do the - I flag so as well - I for the inventory and will reference the inventory file which is called inventory maybe I should have made a bit more descriptive but this is going to be the main solemn running out of so this is your inventory file and just so I'm not repeating myself like that I won't move this to a file called inventory file yeah so handsome ole - I which stands for inventory and you will say inventory file because this needs to reference your inventory file and then what we'll need to do is run a module so it says ansible host pattern + pattern is going to reference an inventory file and a host group out of the inventory file if you want to reference a specific host group so just wanted to do csr 1000v i need to say csr 1000 that way it will skip the other devices if i want to do i OS devices I can do iOS devices and then the options here are going to be these now notice it doesn't have to be in that order also the parser is smart enough to tell if you put the options before the host pattern or whatever well I believe I always type in the same manner so I can't remember but now you what you want to do is reference a module so you'll do a dash in for your module and you want to see what modules we can run you will go over here to the module index now once you're down to the model index go to Network modules these will be for Network Devices and lo and behold we have lots of amazing things here that you can automate we'll go down to iOS and what we'll do is we'll just run iOS fax and it says collect facts from remote devices running Cisco IOS so we'll run the iOS fax module and let's see honestly if you look here the VARs they have set is so they're running this in a playbook and you can define a lot of stuff per playbook I've already defined a lot of these variables inside of my post file so I shouldn't need to define those I think we'll be fine not specifying the transport and so you can gather a subset and filter so you can say I want to gather all facts or I can want only want to gather that config all I want to gather the everything but hardware so the exclamation point or as they say in a shorthand the bang is to exclude so this is a pretty awesome way to use this module when you want to get into more event stuff but we're just going to do this ad hoc mode right now and let's just see if it runs I think I do need to specify iOS devices though so iOS like this only almost is available nothing match I didn't do you so let's go oh wait I got it backwards let's let's put it after him enjoy stop oh so let's see a valid connection specified excited connection local gratis is H and this is for which devices so let's just try removing the ansible part and just have it set the connection local in our inventory file [Music] are still doing that so let us try to see [Music] why is it dinner it should fit right oh I know what I did wrong do you see what I did wrong I forgot to specify VARs silly me so here's what we'll do bars yeah so you need to put colon bars afterwards that will work wonders now let's see if we'll have some magic happen some automation magic with ansible will it make things that easy for us not only seeing that things are slow the ansible actually does a decent bit of work in the backend and by default if I recall correctly it will only run five threads at a time you can specify thread count so I see it says unable to open shell did I goof something else oh oh I'm just messing up everything today I'm last fairly supposed to put much less with children there that's a little late for me sorry guys I'm really just Posten everything today for the shows you don't have to be perfect to do this stuff because it'll help you figure out a lot of stuff for you I go inventory did I forget that yes I forgot that because I'm being silly please put children don't forget your children yay and that looks better because I'm supposed to be seeing a bunch of hands will connect threads to spin up so that looks better hopefully we won't have anything else explode on us today so I can wrap this video up successfully and I actually leave you with something you can use the best thing to do with this is once you get it up and running just go experiment with it it is really great and I'm still blowing up stuff why and I always forget something but I'm doing this you never remember what it is well I think controls see that well this is important so as well actually has pretty good documentation it would be unfair if I didn't show you some of the problems that you can go through while trying to get this running but if you follow the link and listen to what they say they actually can help you figure it out so we're going to actually walk through troubleshooting this together so we've got the network debug and troubleshooting guide is saying unable to open the shell please see HTTP docs at school now we're do about troubleshooting unable to open shell so I actually I could have pasted it in this whole thing and then we'll jump to exactly what I needed says the unable to open shell message is new Nets will two point three this means the ansible connection Damon has not been able to successfully talk to the remote device this usually generally means that there is an authentication issue this is a catch-all message meaning you need to enable ansible log path find the underlying issues um so if we follow these steps here and enable Network logging which I've done before you're just going to set this variable in your shell and some what that will do if we look here is saying there is a default very odd there's a system variable that says as we log path and you're going to set that to equal your home folder which is what we were in right now so we do print working directory home Livan and it's going to export it so file ansible dot log and you can just cat that or tail it whatever and it will show you what's in it then you need to enable debug so you will set this variable yes we'll be well true and then we will run what for V's and the argument for connection level verbosity so we'll run what we were just doing and we'll actually just run it on one router r1 and we'll do - and we're going to figure out why blew up so we're going to let it fail and see what happens so what I'm going to do is set this to all this screen mode because I know it would be difficult for you to see that went with the transparency activated so if we scroll up we'll see it starting up everything and a lot of this internal process is running and ansible so what we want to do is just let it run until it fails and then we actually want to go ahead and look at our log so I'm going to can't as all that log and if we look here we should see what has failed so if we go here para Micah's model is using to connect in Python apparently goes as a popular Python SSH library if we look here it says connecting to host r1 return an error the error number is 14 bad address so it is possible that uh maybe it isn't resolving using the short names so let us go into our inventory file and we'll put the the fully qualified domain names on that to see to see if that solves problem [Music] Oh so it failed again so I'm not going to lie every time I go to set up ansible and get it running it's always a bunch of failure until I get success let's see what Phil this time is the same thing that just happened it's our time you know what I know what the problem is I know what the problem is it wasn't an issue what about address I know the issues so what we're going to do is go back to our inventory file change it back to the way we had it because we can we can indeed use those names and this yeah this is going to typical you so if we do success a Cisco r1 if you look it says the offense the authenticity of host 10.99 is there that 101 cannot be established so until this is a known host in our known hosts file ah ansible will not connect to it now you can force ansible to can't connect to untrusted hosts but naturally that is not as secure but I guarantee you now that I have connected to that host and added it to the note house file mmm beautiful successful it did not have issues if you look here it's actually able to go in and it's going to pull out all this information so you can look at all the time ipv4 addresses so you can know all the vvv out yeah so you can know all of the available IP v4 addresses on there all of the available ipv6 addresses shows you the file systems you can Interpol hostname will show you your interface status information which is awesome so this is very good for doing some basic Network automation and if you want to start representing your network via software and being able to enumerate the status of multiple devices you can do this so we go down you have all of that information available for all of your interfaces let's see don't know if it actually checks for CDP neighbors I'm trying to think what the ansible Network neighbors yes because I think if I go to that device so see teenagers oh it's not so many neighbors so maybe that is what that is for I don't know now so how do we solve the problem of populating a house files let's take a look and see if we can figure that out look at populating pre-populate known house files so we look there using SSH key scan Keys came from one file which is interesting so they're doing a little just there yeah and this is the main reason I don't want to advise you to set the street post key options no because this does open leave you wide open to men in the middle attacks and while these are lab environments I don't know kind of like everything you guys are going to be running in your lab environment or how many people will be accessing it so I don't want to just straight-up say well yeah just turn off streak house key checking so eseni me and this is for window stuff and the thing is I'm try remember if I was turn remember if I successfully did it using SSH key scan or not so if you look here so [Music] so what we'll do is try this cool so looks like we'll be able to do let's try referencing a file I don't know if it'll lead ini files so let's do a stage sage and III to do JJJ so it looks like a change this a list of comma-separated values TP I think that's going to solve that for of it I an X range X range in here aw crap and now get it it just install at my phone that's Jupiter out here about that that's fits off so 301 I and I'm getting pretty in the weeds on this right now there are easier ways to there are simpler ways this you could just manually make your list bomb in the complicated move today so I'm going to be fancy synthesis drawings Oh yeah I'm going to Python 3 so 4 I I in range 20 we want to France and then go do % I this is what we want yes no that is it on going like that that's correct we're going to do the lazy way we're going to do plus one do this explicitly there we go softness generate our list of devices because I don't like doing that much typing I'm trying to save myself keystrokes because if I keep messing computers I'm going to have carpal tunnel before it's all over so you then host early the same thing or range for lvr switches and this Q - f Oh see if it'll work oh that's beautiful so all of these will stop that and what we'll do is we will append that output to I've done SSH known hosts and I hope it's not blowing up in the switches all right so let's do cat Sh snow hosts and it's so beautiful look at it it's so amazing Oh it all works now so let's go back to our oldest ansible again inside ansible dot inventory hold your iOS devices dot module holds new module again was at iOS give X was it just affects module module index network modules it was iOS banks oh I need the inventory file inventory file iOS devices defects I'm not actually going to turn off the debugging because it's now not necessary anymore so we will set this false because we fix it and if you see it is working now is a beautiful thing so now you're able to use ansible to execute commands against your device's we have it successfully setup which is fantastic and it's actually just going to keep running through all of those so now let's see if we can actually use on a command commands to run a command so you have iOS command and iOS config there are these are due to meat and potato modules right um so what you want to do when you want to get like your show statements and stuff run iOS command because this doesn't go into the configuration mode so like show interface description such-and-such you'll run iOS command on that to change configuration you want to do i OS config okay because that goes in configuration mode so here's what we're going to do is we're going to set up an example playbook because I mean what's the point of me showing you ansible if I don't at least do an answerable playbook you hear that phrase all the time as will play what gas will play with so we're going to do test label gamal I'm not sure if them recognizes the animal and as yet and it's parser natively or here the stall of module on Bunty we're going to find out so what we're going to do here is uh we're going to go ahead and go this way and what's cool is if you somehow had connection to these devices before the host names were defined you actually set the hostname here so you see here they say for we want to set I Oh s config we're going to do lines hostname and then we're going to have a variable here for inventory hostname and this is called Jinja templating these double bracket uses agenda template product parser if you want to learn more about Jinja as a templating language there's plenty of stuff out there on the internet but ansible does a good example of explaining how they use it in their environment if you retailer documentation the documentation is very good here also their video tutorials are fantastic as well you can learn a lot through watching the tutorial video tutorials on ansible so don't skip out on that they just ask for an email address so they can see you marketing stuff and you can always opt out a bit but it's definitely worth the time to do it that's how I got my start in tumescent ansible and I don't regret it whatsoever so here because we're going to do we actually going to set up just a test loopback right so let's just copy this out of here and I'll explain what's going on as I'm doing it oops undo there we go ah so yeah moe as a light as a markup language is something useful to learn I'm trying to think am I going to blow this up mmm is it something whatever I should be fine well so what we're going to do is we're actually going to change this and we're going to call this interface back zero actually we'll just put some random liver in there I will just configure this on all the devices right um and this will just be a basic one so what you're going to do is I don't actually have to configure this interface first the way it works is this is kind of like a hierarchy of of configuration so saying I want you to put these commands in underneath this context so I want you to go into the context of interface live x7 and then I want you to put a test interface here and I want you to run this command of description test interface and run the command of IP address 172 31 1 1 or the 24 bit mask now what if it has multiple parents that is a good question well the cool thing is is you will define it as a scalar like this with you'll just go to nuan do two hyphens or however many however deep it is so let's say we did ERG RP named mode for example um so we'll copy this again and here we're going to change this and we're going to say configure trq configure and and here we are going to first define our parents because that actually makes it easier and always use spaces never use tabs when we're writing these unless you're using like a notepad that automatically replaces tabs with spaces it is not like it when you mix spaces and tabs so we will go the parents are di GRP are does it rather i GRP 100 no not we're doing a mode we'll just go all example and then we will do address is it spends the loss of the dinner let me this is that I mean just verify the commands report before we do it and this is actually a good exercise using ansible to configure self makes its way you really have to make sure you know your commands otherwise it'll fail therapy and pull and then address family actually before and then you do autonomous system right i before autonomous system 100 yes there we go so that's the part I was returned remember what place autonomous system went in there so IP v4 Hana mr. stone 100 and what we will do is will actually add this network right and there so we'll delete this and we'll change to the N and we will go network and that's what the other didn't stay in here yeah just make sure one sitting to you dot 31.1 that is zero there about there that clear that 255 and that'll be our playbook that we run against all of our routers so we don't want to run these other switches all right so let's do then nothing will be passable labeled cool and then we'll do si for our inventory file and then we will specify the host pattern of it of those so we'll do CSR 1000 V and just just so you can keep up what was going on I'll just show you so that is the host pattern that I have to find in there so we will jump back to what we were doing here same inventory file is this inventory foul our host pattern is CSR 1000 V and then let's see try to remember oh I'll show you how to set the threading as well so we do actually label message so if we live where is all right f4 forks it says specify the number of parallel processes used the default is 5 so if you wanted to go a little bit faster and run multiple processes at once you'll just use the dash F flag to specify how many can handle and this will be dependent on your CPU so be aware of that some of your dash F 1 will do 1000 to 10 at a time what I wanted to do is to top over here so you can look at the right and then we're also going to maximize this so you're able to see everything going on a little bit more clearly so what I want you to watch is our CPU utilization percentage so you can get an idea of I'm just running this on one 2.4 gigahertz core with a gig of ram and you'll get an idea of the resource utilization of ansible so you can kind of get an idea of what you need before deploying good grief I forgot I need to specify the playbook as well the PlayBook is going to be our test playbook right oh I know what I'm supposed to be I'm just goofing up today guys um and your PlayBook you define your hosts actually so that's playbook and is it just hold on let's look at PlayBook is it basics oops yeah and we actually need to set that in a heading of tasks as well so this is probably going to break again now I'm just cutting putting so much you can got so much confidence right now but now you're going to see every which way you can break it and for those of you who are just looking for all flawless straightfoward representation of outages I'm sorry for being a disappointment but I am going to disappoint you in this tasks and let's see if I can have some success here was it s now hopefully that won't break it I hope you the indented notes as spaces and that tabs I have a bad feeling that it's not going to actually you did this let's run it anyway because it wants to do this yep so this is all I'm saying do not use tabs do not use tabs or you will anger the yellow god and what we're going to do that should be enough I was totally wrong way to do that so maybe that'll make me happy yay and one part of doing threading is that it's going to do is going to work in whatever ones get spun up and respond first so they're kind of racing for system resources so you won't see this get returned in the exact order that the hosts are listed in well this is what it looks like to run an ad so we'll play book and it's actually pretty sweet and we look at the right I'm running ten processes in parallel and the CPUs from forty to sixty percent on average I've ran 20 threads without it crashing and burning on a CentOS VM I'm assuming I could probably do the same on this one to VM so it shows you the success rate of each task that I've defined and that's what's cool about being able to name your tasks so it actually shows you okay these don't have any tax turned out okay because the first assets got affects these are how many of them have all changed and we're successful original would fail now here's another cool thing I'm going to run it again as you see this is a very fast way to roll out a lot of changes in a topology and you can see why ansible really is taking off in the devops world being that you can automate the configuration of servers routers switches firewalls load balancers all at the same time so you can literally like deploy entire topology if you're crafty enough um and and stage updates so say you want to update your servers first and then once they're done updating then update the switches that are responsible for the servers that way the servers are done updating before the network connectivity is interrupted or or anything like that so on and so on that's really cool um hmm so one of the things I was expecting it to do that it didn't do a lot of times what we'll do is say that it didn't have to do any changes and that has to do with like item potent commands saying that certain commands well I don't know that actually I have to do item potency um ah but what it will do is it a lot of some of the modules depending on what kind of commands are configuring it would look to see if those commands are already configured and if they're already configured I'll just skip it but it didn't seem to be the case on this one Melissa SSH into like r3 because we know we did not have that configured on r3 and whoops not change dowsing honest I might be useful to exercise that a playbook we did earlier or we saw earlier with it says the host name because I apparently that's this one up oh let's just do a show run on it if we look we'll see the router arg AP example is here under the multi multiple nested hierarchy and also our loopback is there so here gr p ecology and that loopback is in the itrp topology so that is just like the basics of what ansible has to offer it can do a whole lot for you in your environment and help out with a lot of things like that it's fun the lab with and the great thing is one of those Universal Swiss Army knife tools that can be used on any device and even if you're just a network admin or system admin and you don't have the ability to install this unlike for the management server you can install it on your local machine and essentially it's just SSA Singh and running commands for you so you can make your personal workload easier as a consultant or engineer that has to do one-off jobs for different groups and stuff you can define inventory files for your different clients networks whatever have you and and define flave looks that help you get work done faster and it's totally open source and cost nothing for you to use as an individual if you must have that graphical user interface there is ansible Tower as well I have not messed with it any because I'm cheap if Red Hat wants to hook me up I'll gladly set it up and demo it and show people how great that is well but other than that I'm not really going to be too froggie to jump into it because I can do so much with just the standard deployment of ansible by the way ansible does run on Python 2 7 they're working on porting it - 3 so just know that you have to have those libraries installed on whatever machine you're running it on the simplest way is probably just to spin up an Ubuntu VM on your box using VirtualBox which is all free virtualization software and just install it in there and configure it that way using a bunch of server just the way I did because as you saw the install of the server was not painful at all the install of the software on the server wasn't painful at all it's just an initial configuration making sure you have the SSH keys in the host and the known hosts and making sure you have that base inventory file configured properly because the network devices are picky about it the server's aren't nearly as picky about that stuff but once you have that stuff set up you are good to go with that said thanks for tuning in and we will catch you next time by [Music]
Info
Channel: Eighteen-12
Views: 3,250
Rating: 4.8666668 out of 5
Keywords: CCIE, Routing, Switching, Technology, DevOps, Automation, RFC, Cisco, Ansible, Ubuntu, Linux
Id: Pb_wIIo4Q1M
Channel Id: undefined
Length: 74min 36sec (4476 seconds)
Published: Tue Jul 25 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.