Now let's look at Ansible architecture.
I only want to do no more than say 12 or 13 minutes of
lecture before we get into the hands on,
so let's step up the pace.
Ansible's native architecture is Linux where you've got a Linux control node.
This is simply a Linux server that has the Ansible software installed.
Ansible uses Python under the hood.
So you'll want to make sure Python is available in your environment.
Python and SSH, the secure shell protocol,
is the combination that we use at base in Ansible networking.
And we're going to do a whole module on Ansible networking at the end of this
course, so I'm not going to‑‑‑ The reason why I slowed my speech there is
because I was reminding myself not to over teach now.
So you've got a control node. You're using SSH,
which is going to guarantee line confidentiality and identity verification,
all that kind of stuff.
And then, on the client side,
what's actually performing the configuration management on your
Linux‑managed nodes are Python data fragments.
So Python is really‑‑‑ That's actually what Ansible itself is built in.
Python underlies it all. And you can manage Linux,
Windows, as you can see, Docker containers,
switches. You can even do managed hardware with Ansible.
And let me go back in my highlights to this part.
What makes all this happen functionally are these plain text YAML
format playbooks that include these modules,
these basically classes, that give you different
capabilities over different types of systems.
For instance,
there's a number of built‑in Windows modules that govern various
Windows‑based configuration management tasks.
Now how does this situation change in Windows?
Well, on one hand, you still need Python on your control node.
And specifically, if you don't have any Linux boxes,
you can actually do this all with WSL2,
the Windows Subsystem for Linux. And that's actually what I'm doing in my demo.
You'll see that. And in there,
you'll absolutely need to have Python installed. But you'll set that WSL2,
Ubuntu Linux or whatever distribution you go with Linux, control node running,
on my case, within a Windows server in my environment.
Now you can use SSH when you're doing Windows and Ansible,
but it's not under full support yet.
It's still in a preview state.
So, the guidance is to use Windows Remote Management,
which uses the WS Management protocol.
You've got support for Kerberos authentication,
you've got support for CredSSP, so you can do multihop authentication. And
you've got TLS as an option for line encryption and integrity verification
and all that. The elegance here that I want to lay out is that in Ansible
for Windows, the idea is to use as much native tooling as possible, as
much native protocols.
So we're using the native Windows Remote Management service,
and the actual CM, the configuration management, is taking
place not with Python data fragments, but with PowerShell data fragments.
You see that? So we're talking about a different but
analogous architecture under the hood.