 I rehearsed this without a handheld, so I'm like, I'll try to be calm. All right, a lot of innovative ideas and all that. Good news, this one contains no innovation whatsoever. So you can relax your brains. All right, so I am Clinton Wolfe. I'm a DevOps consultant. Is this thing flipping or what? There we go. I'm a DevOps consultant. I'm a configuration management specialist. I especially work a lot with Chef and Ansible. And I'm also a tooling wonk. So I love working with things that involve your workflow and improving them, getting to the point where you can really make a lot of good progress. So what is Ansible DK? Ansible DK is a bundle. It's an operating system package that contains a whole bunch of add-ons to Ansible that help make your Ansible workflow better. Now you may be thinking to yourself, why would I possibly need that? Ansible is notoriously simple. You don't need anything complicated for Ansible. But is that really true? Anybody who's actually used Ansible for more than a few weeks or any other configuration management software ends up learning this sort of thing, that you try to use configuration management software. And great, it works the first few times. You get your little toy web server up. But then as soon as you make a change, you have a syntax error, or there's differences between environments. You need some way of actually testing things before you run it on a machine that you care about. Well, luckily there are a whole bunch of tools that do exactly that sort of thing, things like server spec, test kitchen, all those sorts of tools. But they're not included with Ansible. You have to go out and install them on your own. And even worse, half of them are Ruby-based, and half of them are Python-based. They all have different development cadences, and they all have different dependencies. It's a complete nightmare to try to manage this stuff. All right, and even worse, you have to manage it on all of the developer work stations, which look basically like that. When you try to manage all that sort of thing on developer workstations, you end up in a completely unsupportable mess. Everybody's on different versions of things. We needed a solution that was more stable. So enter omnibus. Omnibus is a system that allows you to compile a whole bunch of stuff. And at the end of it, you get an operating system package. Well, that's exactly what I wanted. So we created an omnibus setup that includes a Python runtime and a Ruby runtime, and all of these great testing tools that we wanted. And then at the far end of the process, you get RPMs, devs, and DMGs for Mac. And the best part of it is, it all goes under Opt Ansible DK and is linked to itself. There are no external dependencies, which is wonderful. There's nothing on the operating system at all. Now, anybody here who uses Chef DK is probably thinking, wow, that sounds incredibly familiar. And of course it does. This solves exactly the same problem that Chef DK solves, using exactly the same solution, omnibus. So at this point, I'd just like to give a huge shout out to Chef and the Chef DK team and the omnibus team, and just say, imitation is the sincerest form of flattery for mediocrity for greatness. So enough about what it is, let's talk about the experience. When you actually install or upgrade Ansible DK, it's very straightforward. It's just an operating system package. You just install it normally after you download it. And to upgrade it, it just overwrites everything in Opt Ansible DK. You don't ever have to uninstall it or worry about any dependencies or anything like it. To run it, it's really straightforward. When you run it, you just get a whole bunch of exports that all set up your Ruby and Python environments. And it also includes Ansible itself, of course. At this point, when you run things, you're all getting stuff out of the Ansible DK package. It includes a special tool called a generator, which you can customize. This allows you to set it up so that your team, whenever they make a new repo or a new playbook or a new role, it gets created exactly the way that you want it to be created, which is great. That's currently an open pull request. So another piece, I wanted to demo this piece here, which is running it with Test Kitchen. This is an example of using Ansible DK with Test Kitchen to create a temporary node, run Ansible against it, run server spec tests on it, and then destroy it once the test passed. You end up in this virtuous cycle of editing, creating, converging, destroying. It's wonderful. It's exactly where you want to be and you never have to touch a real machine. So you may be thinking, oh, I don't wanna use Test Kitchen. That's fine. You don't have to. We also include molecule. Or you don't have to do testing at all. That's fine. Ansible DK is non-prescriptive. You can do it however you like, use whatever pieces you want or none. You may also be thinking, there's some tool that you wish that is not there. Like for example, we don't have any Docker support and we also don't have any Digital Ocean support. That's fine. We're a very young project. We absolutely welcome any kind of pull requests or issue requests for any of these sorts of things. All right, that's basically it. Please download or contribute at ansibledk.org and happy converging.