CentOS 8 Hosting Alternatives

Hopefully this isn’t tl;dr

With the news of CentOS 8 moving to a different phase, we’ve seen plenty of alternatives popping up in its place such as Rocky Linux, Alma Linux and Oracle Linux. So far, I’ve been working with Alma and Oracle both on bare metal and Xen virtualized. Alma seems built to be about the most compatible using the same names for packages and repos but I use Oracle all day for other tasks and I mostly like how they’ve maintained their OSS. Since I use Cloudmin and Virtualmin, I have to consider what is the most flexible in the long run. So far, Oracle seems to be the winner from the perspective that it’s UEK kernel seems to be based on kernel-ml and supports both bare metal/dom0 AND domU Xen virtualized environments. Alma Linux and CentOS 8 have to use kernel-ml when Xen virtualized since RH is/has removed all support for Xen virtualization. Kernel-ml has that support and works perfectly. I personally try to keep certain VMs using distro-default repos and so on as much as possible to reduce possible points of failure. Oracle so far seems the best however there are issues with its repos using slightly different names for somethings. For example, code builder has ol8 in front of the name and PowerTools doesn’t exist. Those packages are in code builder.

So, that said, I have an Oracle 8 VM that I set up for Virtualmin testing. I’ve been able to modify the install script a bit to get the repos sorted and continue the install.

First, change:
run_ok “$install_config_manager --set-enabled codeready-builder-for-rhel-$os_major_version-x86_64-rpms” “Enabling Red Hat CodeReady package repository”
to:
run_ok “$install_config_manager --set-enabled ol8_codeready_builder” “Enabling Red Hat CodeReady package repository”

then change:
run_ok “$install https://dl.fedoraproject.org/pub/epel/epel-release-latest-$os_major_version.noarch.rpm” “Installing EPEL $os_major_version release package”
to:
run_ok “$install oracle-epel-release-el8” “Installing EPEL $os_major_version release package”

That gets me part of the way through the install.

▣▣▣ Phase 3 of 3: Configuration
[1/23] Configuring AWStats [ :heavy_check_mark: ]
[2/23] Configuring Apache [ :heavy_check_mark: ]
[3/23] Configuring Bind [ :heavy_check_mark: ]
[4/23] Configuring ClamAV [ :heavy_check_mark: ]
[5/23] Configuring Dovecot █▒▒▒▒▒▒Error: Missing file to read at dovecot::/usr/libexec/webmin/dovecot/dovecot-lib.pl line 283
Error

Missing file to read at dovecot::/usr/libexec/webmin/dovecot/dovecot-lib.pl line 283

Looking at that line 283, I see local $lref = &read_file_lines(&get_config_file());

There must be some kind of difference in the dovecot package. The install log doesn’t show anything useful. The old scripts didn’t silence dnf/yum output so maybe that’s a change to the script so I can see what might be missing.

Anyone else want to give it a try?

1 Like

Rocky and Alma seem to be the leading candidates for most Virtualmin users looking to move, and several folks have done installations using the git version of install.sh (with a minor tweak to make it use the existing Virtualmin 6 repos).

I’m inclined to recommend against Oracle. I don’t have good feelings about their trustworthiness as stewards of Open Source projects, based on past behavior (Hudson, MySQL, OpenSolaris, etc. the list is very long).

Oh, and there have been several threads about this topic. This is probably the longest: The CentOS Demise

Normally I’d agree but MySQL is still largely free as it has been. They’ve integrated features from Oracle into it and made it more flexible.

As I mentioned, for me the part that makes Oracle Linux 8a good option is that it’s using the newer kernel by default which performs great in both dom0 and domU with no 3rd party repos. AL8 works too but I just don’t like having to use kernel-ml when virtualizing it.

Have any ideas as to what would fix that issue in the process? If I can get it to finish, I can share feedback making it another option for everyone to consider.

1 Like

Commenting out the offending section of the dovecot conf, I get all the way down next to the postfix configs.

In my case I have IPV6 disabled in the grub.conf. I guess the script needs to have it enabled even if I don’t plan to use it. I’m guessing the dev version of the script that @Joe mentioned might have fixed some of these issues for AL8. Anyone know where that’s at?

[22/23] Configuring Postfix                                             ▒▒▒▒███/usr/sbin/postconf: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
▒██████/usr/sbin/postconf: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
▒██████newaliases: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
▒▒█████postalias: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
[  ✔  ]
[23/23] Configuring Virtualmin                                          [  ✔  ]
▣▣▣ Cleaning up
[DEBUG] Cleaning up temporary files in /tmp/.virtualmin-366813.

Device "eth0
eth1" does not exist.
[WARNING] Unable to determine IP address of primary interface.
Please enter the name of your primary network interface: 
eno1
Device "eno1" does not exist.
./slib.sh: line 447: /sbin/ifconfig: No such file or directory

[ERROR] Fatal Error Occurred: Unable to determine IP address of selected interface.  Cannot continue.
Cannot continue installation.
Removing virtualmin-release                                             touch: cannot touch 'stopspinning': No such file or directory
./slib.sh: line 275: unitest.txt: No such file or directory
./slib.sh: line 277: unitest.txt: No such file or directory
[  ✔  ]
[ERROR] If you are unsure of what went wrong, you may wish to review the log
[ERROR] in /root/virtualmin-install.log

Odd that it displays the NIC information like that with a line break between eth0 and eth1. At the prompt on the second time around, I entered eth0 and it took it but then displayed an error.

Device "eth0

eth1" does not exist.

[WARNING] Unable to determine IP address of primary interface.
Please enter the name of your primary network interface:
eth0
./slib.sh: line 450: log_debugPrimary address detected as xxx.xxx.xxx.xxx: command not found
[SUCCESS] Installation Complete!
[SUCCESS] If there were no errors above, Virtualmin should be ready
[SUCCESS] to configure at https://xxxxxxxxxx.com:10000 (or https://xxx.xxx.xxx.xxx:10000).
[SUCCESS] You’ll receive a security warning in your browser on your first visit.

What is the command used that causes the command not found ??

As far as the issue with the line break between eth0 and eth1, that’s because in the slib.sh file, the code does this:
defaultdev=$(ip ro ls|grep default|awk ‘{print $5}’)
In my case, the secondary NIC didn’t have DEFROUTE=no in it.
A suitable fix for this is:
defaultdev=$(ip ro ls|grep default|head -1|awk ‘{print $5}’)

I’m not sure where this slib.h comes from but I found it in /tmp/.virtualmin-360732/files/slib.sh

@Joe can you add this fix for the defaultdev to your codebase?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.

This fix adds un-official support for Oracle Linux installation and this fix adds Oracle detection (including detect_ip fix).

I want to be clear that Oracle will not be an officially supported OS for Virtualmin. It’s close enough to CentOS that it’ll probably work fine with Ilia’s tweaks, but if you’re deciding which OS to use, I recommend CentOS 8 if you are installing today, and make a plan to move to either Rocky or AlmaLinux, as those two will be our officially supported RHEL rebuild distros throughout the life of Virtualmin 7.

So: Don’t install Oracle Linux for Virtualmin unless you have a compelling reason to do so (and even then, have you considered one of the alternatives?).

2 Likes