Rapid deployment of lots of servers
I've got a task to deploy RHEL 7.4 to a bunch of servers (around 27) as quickly and efficiently as possible. I was thinking to do PXE boot kickstart installs using a single kickstart server.
The servers will have differing hard drive layouts (some with terabytes of space, some with maybe 500 gigs) - other hardware specs will differ (amount of RAM, number of processors)
There are some required partitions that need to be created because of security requirements (i.e. /var, /tmp, /var/log, /home, etc)
Except for /boot, all the other partitions should be LVM.
Hostnames and IP addresses can be added after the OS is installed (unless there's a quick easy way to apply that via kickstart).
The hardware is physically located in a remote data center, so a small team will fly in, do the OS and app installs, and then fly back.
I was thinking to build the kickstart server on a laptop that is ready to go when they get down there; it should be as plug and play as possible when they arrive.
This is kind of an open-ended question - I'm kind of fishing for suggestions, ways to make things go quicker/smoother, open to ideas I haven't thought of yet.
Thanks!
Paul
Responses
Hi Paul,
Here's some possible approaches....
1) build one server the way you like it, use the resultant /root/anaconda.ks (spelling of file may differ slightly) and then adjust it to suit your needs for more servers. Create a web server, put that file on the system so it is viewable and wget-able and use that to build subsequent systems. You'll have to adjust the "network" line of the file for other subsequent systems. Make a sane approach to packages and partitioning. Generally people don't consider their storage needs and later decide they needed more under whatever given partition is later suffering.
2) Do you have a Red Hat Satellite server? If so, you can use the provisioning method and make a PXE server, see docs.redhat.com.
3) Are you using VMware? If so, you can build a box and clone it. But you REALLY ought to carefully change some important things like machine ssh keys, and there's some other things you should change (maybe even consider changing the install date of the basesystem rpm, only modifying the rpm date to show when it was "built" or "cloned" as one of our astute members here in the discussion discussed some years back).
It's not highly documented but you can use an %include http://yourwebserver.example.com/path/to/partitioning.txt for partitioning and an %include for many other things including networking and other factors. You can of course code all of this into individual kickstarts as well. You can make a packages file and run the include as well. you can have individual scripts you wish so you can have a "cleaner" kickstart. I use many %includes for scripts, network, partitioning security-related scripts then make a CNAME for the various isolated networks I have then I can have one kickstart for multiple isolated networks and the kickstart works because the content is different on each given isolated network.
If you CAN use PXE, that may be a wonderful thing for you. The questions (I don't know your infrastructure here), are if you do or do not have a Red Hat Satellite server or if you're going to make your own PXE server without the use of a Satellite server.
There are a number of approaches, and I didn't even bother discussing the use of Puppet or Ansible, both are highly useful.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
