What does a Ubuntu Server admin need to know about CentOS
Solution 1:
- RHEL/CentOS uses SELinux quite extensively. Ubuntu has AppArmor as stated earlier.
- RHEL/CentOS has by default much less software available than Ubuntu; you may need to add repositories such as EPEL, depending what your server needs to run.
- RHEL uses more traditional way for booting and managing services, Ubuntu uses
upstart
. - RHEL has more comprehensive packages for advanced stuff such as identity management & auditing, clustering, GFS and virtualization than Ubuntu. They are available in Ubuntu as well but require more tuning (IMHO).
- RHEL might or might not get better support from 3rd party software vendors, depending on what your server needs to run. Some obscure proprietary enterprise software is more often than not only tested with RHEL and/or SuSE Enterprise Linux. Using something else makes them say "We won't support that, if you encounter any problems, we will blame your $linuxdistribution".
- Automated, unattended installs are quite easy with RHEL and Kickstart. Ubuntu has limited support for it, too, but in large server farms Kickstart is very commonly used.
- Ubuntu gives you more choice for what file system you use. For example, RHEL just recently got official support for XFS, before that you had to compile your own kernel (or possibly use one from EPEL repository).
- Ubuntu uses
sudo
and disables root account by default. RHEL has traditional root account (and SELinux roles, if you want). - Network configuration is different. Ubuntu has
/etc/network/interfaces
, in RHEL you modify/etc/sysconfig/network-scripts
directory. - Several other configuration files are located in different places compared to Ubuntu. For example, Ubuntu has
/etc/default
directory for many daemons, RHEL has/etc/sysconfig
. - Some package names do vary; already mentioned here is apache2/httpd difference.
- Your default bash prompt will look different in RHEL, and if a desktop environment is installed (not that servers should have), you have a different icon set and background compared to Ubuntu. ;-)
Solution 2:
The difference I have noticed most, based on SF questions is that the apache webserver package is called httpd, instead of apache2. Related to that, /etc/sysconfig/httpd controls the worker module. Furthermore, there is no sites-avaiable and sites-enabled directories.
I put my configs in /etc/httpd/conf.d/*.conf, typically named after the site I'm configuring.
Solution 3:
(Disclaimer: this is based on what I've seen on old versions of SUSE and Slackware; all the Linux systems I'm maintaining at the moment run Ubuntu.)
Ubuntu uses a variation of the Debian superuser protocol; Red Hat-based distros (AFAIK) still have a root user and root password.
Service control scripts are probably going to be in still in /etc/rc.d
instead of/etc/init.d
, but you probably won't find an Upstart daemon.
Log locations are variable even within different releases of the same distribution, so I can't offer any advice there.