I’ve come across Red Hat allot lately and am wondering if I need to get studying. I’m an avid Ubuntu server user but don’t want to get stuck only knowing one distro. What is the way to go if i want to know as much as I can for use in real world situations.
100% sure its Debian.
Mission critical server mostly are RHEL or EL Clone or Fedora or it’s derivative… If you combine even Azure nowdays, Microsoft Linux is derived from Fedora, same as Amazon Linux, and others… Debian are covering some part, but mostly hobbyist, or SME, and mostly non critical, as they don’t have standard across, even on their https://wiki.debian.org/LTS/Extended and https://www.debian.org/consultants/
apt also bad when you got to dowgrade package when something mess up, and get messy with dpkg… :'(
So I quite doubt if it’s production env, mostly go with EL. I do know some company use Ubuntu/Debian, but it’s quite few…
If Ubuntu/Debian want to shape Industries, and kick out RHEL, they need to have standard, and better consultancy than RHEL. I hope so that they could grow and make market competitive, but for now it isn’t sadly.
Debian needs to focus more on automation if they want more penetration in the enterprise. Debian feels made for human admins logging in and managing things old school style which is fine for a few machines. Modern enterprises use Ansible etc and need highly functional non-interactive ways to install and configure etc. Preseed and Apt leave something to be desired here.
What has automation to do with a distro? You can automate any distro. Ansible runs on any linux.
A distro can make automation more difficult than it needs to be. As I mentioned in my examples, Preseed sucks, have you ever used it? And of course Ansible works on pretty much any distro, but Debian family distros are made with the expectation of user input, such as expecting configuration values during package installation and this has to be worked around. It’s not impossible, just more work and testing. When you’re automating CentOS and Ubuntu next to each other, you’ll realize extra Ubuntu related code.
Not a big deal, it’s just minor preferences.
Any examples? I never installed such a package.
It’s been a long time, if I remember correctly one of them is Postfix. Again going from memory that’s at least five years old, when installed in say Ubuntu, you get asked questions, like what you want your mailserver hostname to be, whether you want to configure a relay, etc. This is fine if you know the answers at install time and you’re around to answer the question, otherwise your automation will hang indefinitely if this is not worked around.
Now also IIRC, there are ways to work around this, such as by providing the answers in your automation for the package install step (but then you’re mixing partial postfix config with the package install and the remainder of the config is separate, feels weird) , in some cases it’ might be simply an apt option, but like I said, it takes extra code in your automation which is not necessary on RHEL based distros. Installing a package in Ansible can be 3 short lines of code, for Deb based it’s like 10 lines.
Doing this for one package isn’t such a big deal, but when you find yourself having to work around things and writing extra code for one specific distro/family it becomes clear it wasn’t made for automation and unless you have a personal affinity for it, it’s just a bit easier to use something else.
This is not a diss, it’s not a bad thing for a distro to made for humans, it’s just in that the environments I work in, managing hundreds of machines with Ansible and having a significant code base I prefer to have my code smaller and cleaner.