 Thank you very much everybody for joining me in this talk, I was called on to be an Ansible and I'm introduced first to myself, so you know me, my name is Guillermo Gomez, it's kind of difficult for Czech people to pronounce, so I decided to go for the Nick Tismo, so if you go to TPBC and ask for Nick Tismo, that's going to be in the technology, okay. I'm from Venezuela, I have a master degree in electronic engineering, I've been in university for 6 years, back then in Caracas, and I started my career as a working with a separate company, I was active, a lot of people know them, and I worked for a couple of 6 years, then I worked for another company, German company, that was based in Berlin, Portsmouth and London, there were 3 sites, and they produced Internet Appliances, that was my first touch with Linux in 1999, okay, if you want to know, I got my degree in 1994, so I started doing the math, yes, and after going with DAICA and the Internet Linux Appliances, I really got interested in the Linux world, so I started embracing the movement for free open source, I tested all the distros, as you probably did in your early stages on open source movement, we fought the wars, okay, so we won, okay, and I spent a lot of time with Fedora, I was even part of the Fedora board during the 2011-2012 period, I went through translator, package writer, ambassador, speaker, blogger, blah blah blah, I did it all with Fedora except developing software, okay, most of my efforts in Fedora were based on Latin America, so I pushed the communities in Venezuela, Argentina, Peru, Colombia, even Brazil, okay, so that's me, and I started using Ansible switching from Ruby-driven technologies after Python kind of start killing Ruby, and I'm a Rubyist, but I decided to go with Ansible as a strategic decision in my career, so it was a good decision, okay, so I decided to go with Ansible and OpenShift, okay, so those are good recommendations for anyone in their own careers, and I've been working with this automating anything I can, my previous role was as a sysadmin in Red Hat for developers, I mean I was in charge of maintaining internal platform for developers, in short we were in charge of about 35 to 40 OpenShift clusters, different architectures, different sizes, different platforms, bare metal, bare metal, virtual, OpenStack, so it was a very complex environment, so for me my success in PSI, okay, dealing with OpenShift was just based on Ansible, so barely I use OC commands with OpenShift during my time in that team for more than two years, and there is my, you know, my new engineer colleague Adam, he started an internship with us, and we developed a lot of Ansible code for testing those 35 clusters to know their status, probably many of you are going to ask, well what about Prometheus, Grafana, Splunk, and all those specific platforms, well those platforms always, they were not consolidated in an easy way, so they were not easy to consume, so for us it was not really useful, so it was really useful just to test, can I create a project on this cluster now, can I create a deployment on this cluster now, if it fails, I know something is wrong, so that's what was my job, then I decided for another role, now I'm a technical account manager and now the challenge is different, now I'm not dealing directly with the clusters, because I have no voice, no keyboard to get into those clusters that are owned by my customers, but my customers have problems with them, I'm a technical account manager, in the end that means support them, they have an issue, how can I support them, so my automation now is not dealing with the open shift that I control, but the open shift that I can simulate in a laboratory and test the configuration of my customer and try to reproduce the problems they have, and make this as quickly as possible, so this is my background, so you can ask me about this, so this talk in particular is about how Ansible is related now with the containers world, so I'm going to try to get you engaged in the talk and ask you about what is that you understand, what is a container and what is the problem that the container is trying to solve, sorry, maybe you have an answer to this, someone, what is a container, nobody knows, please come on, a container, is it a new concept for you, okay, what problem does it solve, deployability, what else, what does exactly mean, all right, I will add on that, that's great, okay, that for example I just switch my laptop my previous laptop went expired the warranty, so Red Hat offers me the laptop, you know, with a very small cost, okay, so I decided to go for it, but in the process I got wiped out my operating system, so I got my new Fedora installed, what you're seeing is the new Fedora 38, it's not a CSB, it's the standard Fedora 38, the problem that I'm facing now is that, okay, I'm gonna do my presentation tomorrow and I need to install Ansible and I need to install all these things and you know what, between my Fedora and my well, I started to have problems with the dependencies, so the container basically is solving a very old problem that is in the end very simple, you need to package all your dependencies in one this little piece so you can be sure that you have what you need to run the piece of software that you want without colliding a neighbor, so many people comes from the world of virtual machines, virtual machines did the same thing, let's say, but in a very very heavy way, okay, very heavy, so you had to emulate the hardware, you have to emulate everything, on top you have to put the operating system and so on, so you had a whole machine, of course it had some little benefits, okay, but that's what the container is, so how Ansible relates to this, that's what's the introduction about the tools I'm gonna talk about because in the end I'm gonna fly through the slides, okay, it's more important what I'm telling you right now that what is on the slides, okay, so in the previous iteration of Ansible through the web from Red Hat, it was, what was the name, Tower, so how Tower resolved the problem to solve, to actually run the playbooks, to run the workflow job template, to run the job template, it was, what was the name, a virtual environment from Python, you needed, you know, those kind of vessels with the dependencies you need to run your playbook, your workflow, your job template in a consistent manner, so Tower evolved, but in the end it got very, it got really complex to keep up with this and in parallel the container world started to, you know, raised, so it was obvious that we got to ditch, you know, the virtual environments from Python and start using containers for running our playbooks, so this is the very basics about the presentation I'm gonna make, so you can see in the slide where I'm talking about the dependency problem, the virtual environment, the problems when you need to patch the OS, okay, so there are two new tools that are based on containers that I'm gonna talk about, those two new tools are Ansible Navigator, who knows Ansible Navigator, do you know a bit about Ansible Navigator, okay, thank you, and the second tool is Ansible Builder, and even though I'm gonna throw all the slides very fast, concepts are pretty easy, Ansible Builder is gonna let you create an image for you to run your playbooks and Ansible Navigator is basically a text user interface for you to run your playbooks and any, you know, playbooks that you have developed before, so I'm gonna switch right now, anybody has used before Builder, all right, who hasn't, why? I mean, it looks like everybody already tested it, so I just, I just, I mean, I don't know if I need to switch to the terminal right now, but the idea of Builder is, you know, kind of the tool just to create your image, whatever image you need, basically, based on the OCI format, even though it does support the Docker file, the Docker format also for the containers, okay, no, no, that's another word, true, the good, what I do like about Builder is it supports script format, scripting format, it means you create a simple bash script and you end up with an image, you realize that or you're always using a Docker file, who had used an script for creating an image, what is the, what is the virtue of using the script, repeatability, what else, you can do whatever you want because it's a script, it's not just a Docker file, so you can, you know, do whatever what is you do right now with your knowledge based in bash, and on top of this, you create your image, so that's what Builder is, okay, I'm not going to go to the terminal, you know, have the time for this, I'm going to review a little, also flash about what are the commands that we have in Ansible, we have a lot of them, okay, probably some of them you never tried before, I'm not going to count of them, and then we have it finally, Ansible Navigator, it's a text UI, the analogy I came up with is the MCLI, so we all are used to, in the old times you IEF config, interface config for network and then IP something and all the, you know, the parameters, it's very complex, it's very powerful, but at the same time it's very hard, okay, so the text UI kind of fits in the middle to solve day by day problems, so nowadays for example, and that was a surprise, I showed this, an engineer at Red Hat and I showed NMT UI and he said, hey, I never saw that before, really, all right, cool, but for me it was obvious, okay, you don't have a graphics user interface, you don't have a genome shell, you just SSH into your machine, then this kind of tool simplifies it, you don't know all the details about the commands of IP, you know, details, so Ansible Navigator is like this and on top of this it adds some functionalities, that's where the analogy ends, so this is the command and then where the problem starts actually, this is where the problem starts, so I got into the dependency problems trying to solve the dependency problem, you see how painful this is, yes, so I tried this in the Fedora, I got an Ansible Core version, blah, blah, blah, I tried this on the Railroad 8 and I ended up with another version, it was a mess, okay, still a mess, okay, and then I'm trying to figure out, but in the end the goal is to get an image that is going to work, whoops, so when you get it in store, this is what you're going to get, okay, you can run all those commands like collections, config, doc, help, image, there is a lot of functionality here, so the main point of Ansible Navigator is to consolidate to make it easier to consume all these things that actually Ansible provide you, it's not a replacement, again it's like the network manager CLI, it adds some new features and make it easier for you to run some stuff or to debug some stuff, one of the, for example, interesting features is the line number for 13, which means replay, Ansible Navigators give you this option that when you run your playbook and something goes wrong, then you can actually replay the run without actually running against the target by adjusting your machine through the logs, it's like a dump, so it goes through the dump and shows you all the steps and you can, let's say, trace every step on your playbook and debug it without actually touching the target system, this is one of the very nice features that you can use on Ansible Navigator, this is the help, this is basic information regarding the releases, I'm going to make available the presentation for you, so you're going to have the links, I guess you can pretty much get that information easily, so for example, just to run like a regular playbook, you can just call Ansible Navigator run, my playbook, and you can run it in a non-interactive way, actually exactly with adding a minus M STD out, so it kind of behaves, this is the regular Ansible Playbook output, you know this, and this is Ansible Navigator run output, it looks pretty the same with the same playbook, nice, but if you run it without the non-interactive, you're going to get this, and when you get this, you can press zero, which is the play number zero in your playbook, you're going to get the tasks, at least one by one, zero, and one in this case, you just have a playbook with two tasks, so task number one, got in facts, second task, print something about my laptop, but then you can press again, zero or one on the left, and this is what you get, you're going to get all the details of your task, run your step here, you see, so you don't have to go and rerun the program, include the verbosity or whatsoever, it's everything already there, okay, and when you run for the first time Ansible Navigator against your playbook, this is what happened, it's going to try to pull an image, so this is the key part for you to understand, your playbook is not running based on your operating system installation of Ansible, it's going to run inside that container, you're going to pull the image, you're going to run the container, you're going to pass everything in there, it's going to run, and then you're going to pull out all the details out of it, in this case, this screenshot shows that by default, at that time, that I create this, it was pulling Ansible Automation Platform 2.3, EE, EE means Execution Environment, Supporter Rail, blah, blah, blah, so now you can look forward that the new Ansible Automation Platform is based on this, so the new Ansible Automation Platform is based on the Execution Environment, which is a base image, so this whole talk is about containerized Ansible, so the idea is you're going to create images or you're going to consume images to run your playbooks, so here's a quick mapping between the Ansible CLI and TUI, very important, new functionalities, one of the cutest things is about inspecting collections the replay already mentioned, now about the configuration, you can actually run Ansible Navigator config, so it's going to start gathering information about your actual configuration, and this is a nice thing, because again, when you try to run your playbook, you're wondering, ah, how is it configured? What is it configured? Well, you know, all those things that you may be not aware about at the moment you run your playbook, when you run Ansible Navigator config, you're going to get all the information in your screen, what values are you using, what source it's pulling this configuration parameter in, so in this case, all the green lights, lines are just telling you that it's using the defaults, and the two lines that are not in green is where they were changed somewhere, okay, then of course you have some configurations that you can tweak, for example, obviously you can have an environment variable telling what is the config file, you can use the Ansible Navigator that YAML, or in the home folder the not visible Ansible Navigator YAML, there you have, it's a YAML, it's complex, I mean there are a lot of parameters that you can tweak, one of these is about the execution environment that you're going to use, okay, so I mentioned already execution environments, three things is when you use Ansible Automation Platform, obviously you're going to consume base images provided by Red Hat, certified by Red Hat, so you're going to get support on those, okay, you can use other images or you can create your own, in this case I took just a screenshot on what is being used now in my Fedora installation, the image is called Creator-EE, and that's the version, and that's an example of using a different image from the CLI-EEI with my image, maybe your image, now I'm just putting very simple examples, but imagine your image includes the Kubernetes modules that you need, or you're including you know many other modules that you need to use in your playbook, what else, settings, my image, collections, again when you run the command you're going to get all the information in your path, the recommendation is when you create your new Ansible Automation project, you create a path, you put everything in there, your configuration files, your Ansible CFG, your Ansible Navigator, YML, and so on, you put everything in there, so when you run Ansible Navigator collections in that path, you're going to get all the information that your environment is seeing, so you're not going to get confused at all what it's available for your environment at the wrong time, you can actually explore them, you see the index on the left, so if you press, I'm going for Ansible POSIX, Ansible POSIX is the number five, and then I get all the modules that include the Ansible POSIX, and if I press again one of the index on the left, I'm going to get actually a lot of information about that module, even the examples, okay, so you don't need to go Google blah blah about Ansible module, no, you're going to browse your collections, you're going to be able to look at the modules that are installed in your environment, and you're going to be able even to see who to email and blame about something, okay, that's it about Ansible Navigator, of course there are a lot of more things there, this is just a kind of an eye-opening presentation, I'm going to fly through Builder because I just have 10 minutes more, I already told you this is about creating new images for Ansible Navigator, or Ansible Automation Platform, okay, I just introduced yesterday and the current version Ansible Builder is 300 in Fedora 38, it doesn't match with my REL 8, that was all the mess up started, this is the basic help online, it works based on a YAML definition, and right now the key point here is the version, right now it supports three versions, one, two, three, and you have to go through the documentation exactly what every parameter means but it's kind of a readable, dependencies, Ansible Galaxy, base image, Python things that needs to be included in your image, and here are some examples of the files involved, so for example the requirements, YAML, my list the collection that you need to be installing the image, the bin depth, it's about the system, you need the binary git in your image available, so you will specify it like this, and there you're going to specify your Python libraries needed in your environment, after you make this, well this is one of the extra slides that I need to put yesterday, I was trying to make this presentation shorter, but I figured, so this is important about the versions, version one is supporting all Ansible versions, version two, one dot two, version three, and version, Ansible builder version three dot zero, this is a typical run, in this case I'm just adding minus v3, just to block everything in my screen to see how it's working, you can see that it's actually using podman build command to create your image, and if you, this is the result after all my plays with this, the Ansible execution environment was the custom created with Ansible builder, the meetup, UBI minimum, it was created with the builder script, and the UBI minimum is the base image from Red Hat, from UBI, so that's it, I made the 10 minutes for you to start shooting me at, for questions and so on, thank you very much, thank you for the patience, and now it's on you, no, no, that's a package, he has to repeat, I need to repeat the question, oh, my good friend, your name? Andrea is asking about the software distribution packaging for Ansible navigation and builder, and no, they are only available through PIP, and I think they distribute some zip files from the git repos on github, that's it, so it's an opportunity for packageers, if they're willing to do that, okay, other questions? Proceed, really? It was so clear, so it's a success, thank you very much again.