But well, what we reached was that in Development we managed to
orchestrate a deploy idea, which is basically: we have an AWX, let
me point it out like this, this is an AWX, and this AWX’s source of
truth is a GitLab. So, AWX reads from GitLab everything that
would be… I mean, playbooks, and the first step is to deploy the
iDRAC.
The iDRAC is the computer inside the computer. Inside the
Dell servers we use, before the server even has anything, there is a
small computer called iDRAC. Using a protocol called Redfish, we
made playbooks that AWX connects to the iDRAC and does partition
the disk, configure the BIOS, and reboot into PXE . So, a
brand-new computer fresh out of the box.
And immediately that will end up generating from one Proxmox, it
will end up generating another Proxmox. Inside that Proxmox we
have several VMs. One of those VMs is a PXE Server, I don’t see
anything here for it, but it must be this one.
We have a server, well we have a CDN, which is a processing server, an
Nginx that has all the resources, which in turn acts as a Proxy for
another, which is an Apache, and a server that replicates this data.
Well, this is done automatically and unattended, without operator
intervention. That means a server comes straight out of the factory, you
open the box, install power, install network, and from AWX a
script is launched. This is the AWX infrastructure, sorry, the
Proxmox one, we were going to see, here it shows how it launches, and
this is just for monitoring, let’s say, everything is done unattended
and the operator doesn’t need to see anything running. The AWX
deploys the Proxmox via PXE, actually there are several stages;
first it deploys a Debian NetInstall completely unattended,
meaning you don’t have to touch anything, directly in OEM mode, it
configures everything necessary for that server to be operational. When
it finishes, in a hook, at the end of the Debian NetInstaller, we
made a script that does this: it takes the MAC address of that
machine, which is unique, and registers it in the AWX Inventory.
So that machine, which just received a random IP, we already know what
its IP will be, what its iDRAC is, it permanently stays, for all
the years that Server will last, referenced to that MAC address and
to a serial number that the server’s own iDRAC has. So, in that way,
it is easy to identify it.
Over there on the left, the only thing there is the debug output of
what is being seen on the PXE Server, and as you can see, the
Server is at the PXE Server, the Server installs itself, there
is no manual intervention and it finishes installed; it’s a Debian
system.
The next playbook that is launched to AWX converts that Debian
into a Proxmox, also in an unattended manner. That is, we do not
install Proxmox; we install Debian and convert it into Proxmox.
That is an advantage of Proxmox being a distribution based on
Debian: the only thing that changes is adding a repo. And done, all
necessary packages are configured.
And when it finishes configuring inside a Proxmox, we launch another
playbook that creates the VMs, and yet another playbook that
creates the services inside each VM. All the VMs we use are KVM.
This is a Bank; it needs greater robustness in Security, so all machines
are up-to-date. Over there on the left you can see the creation of all
the different VMs. There are 10 VMs per Server and, rounding
more or less, about 300 physical servers. That gives us a total of
3,000 Debian systems. Installed automatically across the entire
country.