These days I use Ansible to take care of all of that. I can’t share the scripts due to company restrictions, but it has probably built ~10,000 servers in the last year. I first run a bunch of checks to try and make sure the build will be successful. Then create the instance where cloud-init does a few basics to allow the rest to work. Once the instance is up, the connection in Ansible flips from localhost to the serv…
> That’s probably something we could solve for, but it hasn’t been a big deal so far. I did see the "it doesn't bother me" part, but for others looking to speed up mass provisioning don't overlook ansible-pull https://docs.ansible.com/ansible/10/cli/ansible-pull.html > It's also handy for keeping systems in a desired state but I use it a lot more for "clone this when you boot" times hundreds of devices. Error recover…
The other issue we have is our change management process. We need to provide a single update with the status of everything when it’s done. So our process can only go as fast as the slowest server. We could change this, but it would be a political nightmare I don’t want to deal with.