What you want isn't possible because you have multiple conflicting requirements. You're going to have to decide which parts of what you want are important and which parts can be dropped.
I would like to be able to install the OS via litetouch, or PXE and have the ability to deploy applications centrally.
I have used DRBL, personally, but I'm not sure it will work in this environment without modifying the networking infrastructure - which I do not want to do.
Booting via PXE requires assistance from the DHCP server, which is part of the network infrastructure. You want to rely on the network infrastructure to do a job without needing to modify it. That isn't going to work very well.
If a new application needs to be added, I want to be able to push it out to all clients at once and not have to touch each machine.
There are, broadly speaking, three ways of accomplishing this:
- Push-based configuration management (e.g. Ansible), which you've already rejected as it can skip hosts which are offline when run.
- Pull-based configuration management (e.g. Puppet, Chef), which fetch their configuration from a central server whenever a machine is booted, or periodically. This requires you to maintain a central server.
- Centralised installation of software on a network file server. Root on NFS appears to be possible on CentOS, but unsupported by Red Hat. In any case, this requires you to maintain a network file server.
Since you've already narrowed it down to the latter two options, you need to set up a server of some sort. Personally, I'd suggest going with the second option, as it's more in line with what Red Hat supports and doesn't break every machine if the server goes down for a few minutes.
Note that
Red Hat seems to support Puppet, so that's probably your best bet for CentOS.
Also, I want to simplify the OS installs as well and not have to run through a bare-metal install for each new client.
I don't even know what you mean here, since you mentioned Kickstart previously. (Kickstart is the correct tool for automating CentOS installation, by the way, since it is what Red Hat supports.)
Are you trying to say that you want to avoid a
manual installation for each new client?