Run LXC Ubuntu 22.04 LTS container with bridged network under CentOS Stream 9

In continuation of the previous article Run LXC CentOS Stream 9 container with bridged network under CentOS Stream 9, this time the LXC container will be Ubuntu 22.04 LTS Jammy Jellyfish.
To receive a better understanding why to use LXC or a much detailed information of some steps in this article it is better to visit the previously mention article and the original Run LXC CentOS 8 container with bridged network under CentOS 8.

STEP 1) Install the needed software EPEL repository and the LXC and its dependencies

To install LXC software the EPEL CentOS Stream 9 repository must be installed. At present, the LXC included in CentOS Stream 9 EPEL repository is 4.0.

dnf install -y epel-release
dnf install -y lxc lxc-templates container-selinux
dnf install -y wget tar

lxc-templates uses template “download” to download different Linux distribution images from http://images.linuxcontainers.org/, which now redirects to http://uk.lxd.images.canonical.com/ (an Ubuntu lxd images mirror).
The container-selinux should be installed only if the host, i.e. the CentOS Stream 9 install, is with enabled SELinux. The packages offers additional SELinux rules or for the LXC and LXC tools like lxc-attach and more.

STEP 2) Create a Ubuntu 22.04 LTS with the help of LXC templates

[root@srv ~]# lxc-create --template download -n mycontainer -- --dist centos --release 9-Stream --arch amd64

In addition, there is a “–variant” option along with “--dist” and “--release” to specify which variant to install – default, cloud, desktop or other. There is a variant column in the table on the images’ page mentioned above.
Keep on reading!

Run LXC CentOS Stream 9 container with bridged network under CentOS Stream 9

In continue of the previous article with CentOS 8 – Run LXC CentOS 8 container with bridged network under CentOS 8, here is an updated version with CentOS Stream 9 running LXC container. In this case, the LXC container is CentOS Stream 9, too.
Under CentOS 8, the LXC software is from branch 3.x, but in CentOS Stream 9 the LXC is 4.x and there are some differences in the LXC configuration file.
It’s worth mentioning the differences between docker/podman containers and LXC from the previous article:

  • Multiprocesses.
  • Easy configuration modification. Even hot-plugin supported.
  • Unprivileged Linux containers.
  • Complex network setups. Multiple network interfaces connected to different networks, for example.
  • Live systemd, i.e. systemd or SysV init are booted as usual. Much of the software relies on systemd/udev features and in many cases, it is really hard to run software without a systemd or init process

Here are the steps to boot a CentOS Stream 9 container under CentOS Stream 9 host server:

STEP 1) Install EPEL repository.

EPEL CentOS Stream 9 repository now includes LXC 4.0 software.

dnf install -y epel-release

STEP 2) Install LXC software and start LXC service.

At present, the LXC software version is 4.0.12. The package lxc-templates includes template scripts to create a Linux distribution environment like CentOS, Ubuntu, Debian, Gentoo, ArchLinux, Oracle, Alpine, and many others and it also includes the configuration templates to start these Linux distributions. In fact, lxc-templates now includes a download script to download images from the Internet.

dnf install -y lxc lxc-templates container-selinux
dnf install -y wget tar

The wget and tar are required if LXC templates installation is going to be performed.
There is an additional package for container’s SELinux, which should be installed before starting the LXC service, because some of the SELinux rules may not apply in the system. If the SELinux is disabled the installation of container-selinux package might be skipped.

STEP 3) Create a CentOS Stream 9 container with the help of LXC templates and run it.

Use the lxc-templates to prepare a CentOS Stream 9 container environment. The currently available containers are listed here http://images.linuxcontainers.org/, which now redirects to http://uk.lxd.images.canonical.com/ (an Ubuntu lxd images mirror). Check out the URL and choose the right container. Here the CentOS Stream 9 amd64, i.e. release 9-Stream, is used.

[root@srv ~]# lxc-create --template download -n mycontainer -- --dist centos --release 9-Stream --arch amd64

In addition, there is a “–variant” option along with “--dist” and “--release” to specify which variant to install – default, cloud, desktop or other. There is a variant column in the table on the images’ page mentioned above.
Keep on reading!

Review of freshly installed CentOS Stream 9 Workstation (Gnome GUI)

After the tutorial of Install CentOS Stream 9 Workstation (Gnome GUI) this tutorial is mainly to see what to expect from a freshly installed CentOS Stream 9 Workstation installation – the look and feel of the GUI (Gnome – version 40).

  • Xorg X server – 1.20.11
  • GNOME (the GUI) – 40.4.0
  • linux kernel – 5.14.0

More technical details are available for the server installation, which is not different from the workstation but the GUI (Gnome) installed – Software and technical details of CentOS Stream 9 minimal install. The later article may be of interest to developers, too. The CentOS Stream 9 Workstation install may install all of the listed software for CentOS Stream 9 Server.
The idea of this tutorial is just to see what to expect from CentOS Stream 9 Workstation (Gnome)the look and feel of the GUI, the default installed programs and their look and how to do some basic steps with them. Here the reader finds more than 125 screenshots and not so many text the main idea is not to distract the user with much text and version information and 3 meaningless screenshot, which the reader cannot see anything for the user interface, but these days the user interface is the primary goal of a Desktop system. More reviews of the kind will follow in the future …

CentOS is a pretty stable Linux Distribution System, which follows the paid Red Hat enterprise RHEL 9. And if the user really just wants a stable OS with a GUI for the next let’s say 5-10 years with support and fast security updates the CentOS Stream 9 might be perfect for it! Developing on this platform should be easy, too, because it supports all kind of virtualization and despite it may not include the bleeding edge libraries and software, it is easy enough to install latest software in a full or para virtualization or a container!

For all installation and review articles real workstations are used, not virtual environments!

SCREENSHOT 1) Fedora Linux (5.14.0-119.el9.x86_64) 9

main menu
grub 2.06 entry boot

Keep on reading!

Install CentOS Stream 9 Workstation (Gnome GUI)

This is the latest CentOS version with a graphical interface Gnome for a workstation. If you are a developer or just a Linux user, which want to have a pretty stable Operating System, the CentOS Stream 9 may be an option for you. CentOS Stream 9 is based and follows the RedHat Enterprise Linux 9 – paid Linux for the enterprise world, which is available for free thanks to the Open-source Software. CentOS Stream 9 will receive all the updates from the paid Linux system RHEL 9 and the support will be 10 years from now. 5 years of full support and 5 more years of security updates. The use of CentOS Stream 9 assures the user to have a stable and secure Linux operating system, which will not bring fundamental changes and breaks things periodically as of a more enthusiastic Linux Distributions. More information for the system here – Software and technical details of CentOS Stream 9 minimal install and Software comparison Ubuntu server 22.04 LTS vs CentOS Stream 9 head-to-head
The CentOS Stream 9 has a generic installation wizard for multiple type of installations – server, server with gui, user workstation and so on. This article is to show what options to enable to install a user workstation with CentOS Stream 9 with a graphical interface – Gnome. Most of the people think CentOS as a server Linux Distribution, but in fact, it is ideal for a workstation, too, especially with the grade of stability and security these days.
This article uses network installation with the following media: http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-latest-x86_64-boot.iso which always points to the latest release of the CentOS Stream 9. The network installation will choose automatically the best mirror to download the packages for the system. There is an option to use an off-line installation with an 8G ISO disk. Check out for more ISOs here – http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/iso/

SCREENSHOT 1) Boot from the UEFI DVD-ROM device.

It is the same with the USB bootable removable drive. Choose the UEFI USB drive and boot the installation live drive.

main menu
UEFI BIOS DVD-ROM boot

Keep on reading!

Install or reinstall CentOS Stream 9 grub 2 under UEFI system

Under CentOS Stream 9 the grub2-install tool cannot install the bootloader manager Grub 2 when using UEFI-based systems. In fact, the grub2-install command installs only the old legacy mode Grub 2.
The grub2-mkconfig generates the Grub configuration file and adds an UEFI entry in the UEFI enabled BIOS of the systems. The grub2-mkconfig adds a boot entry with path to the /boot/efi/EFI/centos/shimx64.efi, which is a small and simple program to start the Grub 2 program grubx64.efi in the same directory. All this method is because of the UEFI Secure Boot support. Using the previous method it was not possible to support UEFI Secure Boot though it was possible to boot in UEFI mode.
There are some considerations to take in mind when using this new version of Grub 2:

  • grub2-mkconfig has two functions – generates the grub.cfg AND adds boot entry in the UEFI BIOS!
  • The efi partition with this file may not be the first partition.
  • It is an ordinary partition, i.e. it is not mandatory to be of ESP type.
  • The system CANNOT boot without a boot entry in the UEFI BIOS.
  • Booting in UEFI mode only by pointing the disk in the BIOS (or in the boot manager) may not occur. No auto detection and there is no boot program installed in the first sectors of the disk or what so ever. Even, the default install of CentOS Stream 9 creates the efi disk as second partition and without ESP flag enabled.
  • Grub 2 uses /boot/efi/EFI/centos/grub.cfg and this file should hold the latest output of grub2-mkconfig for successful booting after installation.
  • Some dedicated servers’ providers forbid any modification or changes to the server’s BIOS (even with UEFI BIOS), so those servers cannot boot in UEFI mode with the newer Grub 2 versions. Install the legacy mode Grub 2 with bios_grub flag partition and grub2-install.
  • Now, Grub 2 with this method supports UEFI Secure Boot.
  • Use grubby command to select the default kernel. More information here – removing the default kernel in CentOS 8 – remove elrepo kernel

More information might be available here – https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/ and https://fedoraproject.org/wiki/GRUB_2.

Note: The CentOS Stream 8 also have this new Grub 2 version, which supports only this kind of Grub 2 installation. So the procedure may be the same for CentOS Stream 8.

Grub 2 installation under CentOS Stream 9 and UEFI mode.

[root@srv ~]# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done

The above command will recreate the grub.cfg with the proper kernels and kernel command-line arguments from /etc/default/grub and it will add a boot entry in the UEFI BIOS pointing to the “(partition,file-system-UUID)/EFI/centos/shimx64.efi“.
No grub2-install is needed to install the bootloader program anywhere in the first sectors of disk!

SCREENSHOT 1) The grub2-mkconfig tool will add this boot entry with name “CentOS Linux” with the full path to bootloader program shimx64.efi.

The full path is HD(1,GPT, C31EFB93-690C-4137-B589-0A962BE4B960,0x800,0x11D800)/EFI/centos/shimx64.efi. Most UEFI BIOS setups allow the user to add manually this entry by browsing to the file when adding boot entry.

main menu
BIOS boot entry and shimx64

Keep on reading!

Install and use collectd under CentOS Stream 9 using OpsTools

collectd is a daemon, which collects system data and statistics and it may send them over the network to a back-end data. Under CentOS Stream 9 the collectd package has been removed from the CentOS Stream 9 repositories. Special Interest Groups (SIG), which is a group of CentOS Community, provides and supports multiple small repositories for different Linux utilities and tools. One of the SIG‘s repositories is OpsTools, which provides a package for collectd daemon and multiple collectd modules packed in separate packages.

To use collectd under CentOS Stream 9 a CentOS Community repository should be installed – OpsTools.

Steps to install and use the collectd daemon:

dnf install -y centos-release-opstools
dnf install -y collectd

It’s worth noting that all the Linux distribution, which tries to track and be compatible with Red Hat Enterprise Linux like Rocky Linux will have the same problem with missing collectd package. So the SIG OpsTools repository should be also possible to install under all of these Linux distributions.

Here is the output of installing the above packages under CentOS Stream 9:

[root@srv ~]# dnf install -y centos-release-opstools
Last metadata expiration check: 0:00:23 ago on Wed 22 Jun 2022 02:05:19 PM UTC.
Dependencies resolved.
======================================================================================
 Package                       Architecture Version         Repository           Size
======================================================================================
Installing:
 centos-release-opstools       noarch       1-12.el9s       extras-common       8.4 k

Transaction Summary
======================================================================================
Install  1 Package

Total download size: 8.4 k
Installed size: 1.7 k
Downloading Packages:
centos-release-opstools-1-12.el9s.noarch.rpm           62 kB/s | 8.4 kB     00:00    
--------------------------------------------------------------------------------------
Total                                                  22 kB/s | 8.4 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                              1/1 
  Installing       : centos-release-opstools-1-12.el9s.noarch                     1/1 
  Verifying        : centos-release-opstools-1-12.el9s.noarch                     1/1 

Installed:
  centos-release-opstools-1-12.el9s.noarch                                            

Complete!
[root@srv ~]# dnf install -y collectd
CentOS Stream 9 - OpsTools - collectd                  12 kB/s |  41 kB     00:03    
Dependencies resolved.
======================================================================================
 Package          Architecture   Version                Repository               Size
======================================================================================
Installing:
 collectd         x86_64         5.12.0-7.el9s          centos-opstools         673 k
Installing dependencies:
 yajl             x86_64         2.1.0-20.el9           appstream                38 k

Transaction Summary
======================================================================================
Install  2 Packages

Total download size: 711 k
Installed size: 2.2 M
Downloading Packages:
(1/2): yajl-2.1.0-20.el9.x86_64.rpm                   179 kB/s |  38 kB     00:00    
(2/2): collectd-5.12.0-7.el9s.x86_64.rpm              1.1 MB/s | 673 kB     00:00    
--------------------------------------------------------------------------------------
Total                                                 594 kB/s | 711 kB     00:01     
CentOS Stream 9 - OpsTools - collectd                 1.0 MB/s | 1.0 kB     00:00    
Importing GPG key 0x51BC2A13:
 Userid     : "CentOS OpsTools SIG (https://wiki.centos.org/SpecialInterestGroup/OpsTools) <security@centos.org>"
 Fingerprint: 7872 8176 9AD7 3878 85EE A649 4FD9 5327 51BC 2A13
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-OpsTools
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                              1/1 
  Installing       : yajl-2.1.0-20.el9.x86_64                                     1/2 
  Installing       : collectd-5.12.0-7.el9s.x86_64                                2/2 
  Running scriptlet: collectd-5.12.0-7.el9s.x86_64                                2/2 
  Verifying        : collectd-5.12.0-7.el9s.x86_64                                1/2 
  Verifying        : yajl-2.1.0-20.el9.x86_64                                     2/2 

Installed:
  collectd-5.12.0-7.el9s.x86_64                yajl-2.1.0-20.el9.x86_64               

Complete!

collectd default configuration

The default configuration comments all the lines in /etc/collectd.conf except one, which includes all the files under /etc/collectd.d/. So the logic is to have a separate file for each collectd plugin. By default, there are 5 default configuration files activating 5 plugins:
Keep on reading!

Software comparison Ubuntu server 22.04 LTS vs CentOS Stream 9 head-to-head

The following article compares two different and very popular for servers Linux distros with Ubuntu Server 22.04 LTS (Jammy) and CentOS Stream 9. These are the latest versions released in the past month. Bear in mind, that they have different release cycle, but the these are the system with log support up to 2032! The two Linux distors Ubuntu Server 22.04 LTS (Jammy) and CentOS Stream 9 support is till 2032! Here is the links to their life cycle and what kind of support could be expected in the time frame of 10 years:

In the Desktop world upgrading to the new and latest version of a Linux distribution is almost mandatory, but in the server world, upgrading is more complicated. The first step in updating a server is to check what software versions come with the new distribution version and then check whether the running custom (application) software supports the software versions. For example, updating to a new distribution version, which comes with PHP 8.1, but the current application supports only 7.4 is not very wise and in addition, the current version may have years of support in the future.

Lately, with the virtualization and container software and it is more common to choose a long-living Linux distribution for the host and more short-living with bleeding edge technologies for the guest environments. So check out the Fedora 36 Server Edition articles in the site – Minimal network installation of Fedora 36 Server, Software and technical details of Fedora Server 36 including cockpit screenshots and the comparison software table between Ubuntu 22.04 LTS and Fedora 36 Server EditionSoftware comparison Ubuntu server 22.04 LTS vs Fedora 36 server edition – head-to-head.

Software comparison table – Ubuntu 22.06 LTS vs CentOS Stream 9 (20220606.0) as of June 2022:

SoftwareUbuntu 22.04CentOS Stream 9
Support10 years (April 2032)10 years (31.03.2032)
Linux kernel5.15.05.14.0
libc2.352.34
OpenSSL.
3.0.2
1.1.1k
3.0.1
GNU GCC9.4.0
10.3.0
11.2.0
12-20220302
.
.
11.3.1
.
PHP8.18.0.13
Python2.7.18
3.10.4
.
3.9.10
Perl5.34.05.32.1
Ruby3.03.0.3
OpenJDK8u312-b07
11.0.15
17.0.3
18~36ea-1
1.8.0.332.b09
11.0.15.0.10
17.0.3.0.7
.
Go lang1.13.8
1.17.3
1.18.1
.
1.17.5
.
Rust1.58.11.61.0
llvm11.1.0
12.0.1
13.0.1
14.0.0
.
.
.
14.0.0
nodejs12.22.9
.
.
16.14.0
Subversion1.14.11.14.1
Git2.34.12.31.1
Apache2.4.522.4.53
Nginx1.18.01.20.1
MySQL server8.0.298.0.28
MariaDB10.6.710.5.13
PostgreSQL14.213.7
SQLite2.8.17
3.37.2
.
3.34.1
Xorg X server1.22.1.11.20.11
Gnome Shell42.040.10
qemu6.27.0.0
docker|podman20.10.124.1.0
lxc5.0.0.

For more detailed overview the two systems check out the following articles – Software and technical overview of Ubuntu server 22.04 LTS and Software and technical details of CentOS Stream 9 minimal install.

Copy of the Life cycle plans of Ubuntu server 22.04 and CentOS Stream 9 (Red Hat Enterprise Linux 9) of the official sources only for time-freeze feature:

Ubuntu 22.04 LTS
CentOS Stream 9 (RHEL 9)

Software and technical details of CentOS Stream 9 minimal install

This article is for those of you who do not want to install a whole new operating system only to discover some technical details about the default installation like disk layout, packages included, software versions, and so on. Here we are going to review in several sections what is like to have a default installation of CentOS Stream 9 using a real not virtual machine!
Here are some useful URLs:

How to install CentOS Stream 9Network installation of CentOS Stream 9 (20220606.0) – minimal server installation
The kernel is 5.14.0 it detects successfully the Threadripper 1950X AMD and the system is stable (we booted in UEFI mode).
The installation procedure uses default options for all installation setups – Network installation of CentOS Stream 9 (20220606.0) – minimal server installation

Software

With CentOS Stream 9 (20220606.0) you could have

  • linux kernel – 5.14.0 (5.14.0-109.el9.x86_64)
  • System
    • linux-firmware – version: 20220509, release: 20220509-126.el9.
    • libc – 2.34 (2.34-32.el9)
    • systemd – 250-7 (250-7.el9)
    • GNU GCC – 11.3.1 (gcc-11.3.1-2.el9)
    • OpenSSL – 3.0.1 (3.0.1-33.el9) and 1.1.1k (compat-openssl11-1.1.1k-4.el9)
    • coreutils – 8.32 (8.32-31.el9)
    • yum – deprecated and replaced with dnf
    • dnf – 4.12.0 (4.12.0-2.el9)
    • rsyslog – 8.2102.0 (8.2102.0-105.el9)
    • NetworkManager – 1.39.6 (1:1.39.6-1.el9)
  • Servers
    • Apache – 2.4.53 (2.4.53-2.el9)
    • Nginx – 1.20.1 (1.20.1-10.el9)
    • MySQL server – 8.0.28 (8.0.28-1.el9)
    • MariaDB server – 10.5.13 (10.5.13-2.el9)
    • PostgreSQL – 13.7 (13.7-1.el9)
  • Programming
    • PHP – 8.0.13 (8.0.13-1.el9)
    • python – 3.9.10 (3.9.10-2.el9)
    • perl – 5.32.1 (5.32.1-479.el9)
    • ruby – 3.0.3 (3.0.3-159.el9)
    • OpenJDK – 17.0.3.0.7 (17.0.3.0.7-1.el9), 11.0.15.0.10 (11.0.15.0.10-1.el9) and 1.8.0.332.b09 (1.8.0.332.b09-1.el9)
    • Go – 1.17.5 (1.17.5-1.el9)
    • Rust – 1.61.0 (1.61.0-1.el9)
    • llvm – 14.0.0 (14.0.0-2.el9)
    • Subversion – 1.14.1 (1.14.1-5.el9)
    • Git – 2.31.1 (2.31.1-2.el9.2)

Note: Not all of the above software comes installed by default. The versions above are valid as of June 2022, these are the minimal versions you get with CentOS Stream 9 (20220606.0) now and updating it after the initial date may update some of the above packages with newer versions.

Installed packages are 376 occupying 1.6G space:. Note, this is CentOS Stream 9 Minimal Install, not server or server with GUI.

[root@srv ~]# dnf list installed|wc -l
377
[root@srv ~]# df -h /
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/cs_srv-root   70G  1.6G   69G   3% /

Keep on reading!

Network installation of CentOS Stream 9 (20220606.0) – minimal server installation

Minimal net install is useful when a dedicated server is installed from a IPMI KVM or Dell iDRAC, HP iLO, IBM IMM or where the initial client side download of files need to be minimal.
CentOS Stream 9 is receives the updates before Red Hat Enterprise Linux (RHEL) and there is no versioning except the major release, which is 9. So the CentOS Stream 9 receives the updates for Red Hat Enterprise Linux (RHEL) 9. On monthly or less basis CentOS community releases a stable ISO with a temporary time version like this one CentOS Stream 9 (20220606.0).

Continuously delivered distro that tracks just ahead of Red Hat Enterprise Linux (RHEL) development

Here are some useful URLs:

For amd64 the net of CentOS Stream 9 install bootable media is located here (now the current latest release is 20220606.0, but you may check the last release. for the time you follow this howto):

http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/iso/CentOS-Stream-9-latest-x86_64-boot.iso

Note there is no minimal CD for offline installation. Boot CD is to just boot and make “network installation” installation and there is a big fat DVD of 8.1 Gbytes to install offline.

Software details of CentOS Stream 9 minimal install could be found here – coming soon. Technical details of a default CentOS Stream 9 (20220606.0) minimal installation
There is a previous major release installation article – How to do a network installation of CentOS 8 (8.0.1950) – minimal server installation

Download it and put it on a CD or USB, the boot from it and follow the steps bellow:

SCREENSHOT 1) If you booted from the DVD you would get this first screen – select “Install CentOS Stream 9” and hit Enter

main menu
Start installation

Keep on reading!