How to Boot Linux Mint 20 in Rescue / Emergency Mode

There are some situations like user forget his / her password, file system is 100 % utilized, file system got corrupted and invalid entries in fstab file. So, to recover Linux system in these situations, we have to boot Linux system into rescue mode or single user mode.

In this article, we will learn how to boot Linux Mint 20 in rescue and emergency mode.

Booting Linux Mint 20 into Rescue / Single User Mode

Rescue mode is also known as single user mode, in order to boot Linux Mint 20 in rescue mode,

Step 1) Go to grub screen by pressing “SHIFT” key and then press “ESC” key. We will get the following Grub boot loader screen,


Choose first option and then press ‘e‘ to edit

Step 2) Append “” to end of line which begins with linux word

In the boot loader screen, look for the line which begins with “linux” word and append ““, example is shown below


Now, Press F10 or CTRL-X to boot the system in rescue mode,

Step 3) Perform troubleshooting steps and recover the system

We will get the following rescue mode screen; press enter and then do the troubleshooting steps. I am assuming “James” user has forget his password, so we will be resetting his password from rescue mode.


Once you are done with troubleshooting steps then run “systemctl reboot” command to restart the system.

Booting Linux Mint 20 Into an Emergency Mode

Emergency mode is used where we can not boot Linux system into single user mode, In this mode, file system is mounted in read only mode. To make any changes in the system we must first mount filesystem in read-write mode.

In order to boot Linux Mint 20 in emergency mode, go to Grub boot loader screen and choose the first option and then press “e”  to enter into boot loader edit mode.

Look for the line which starts with ‘linux’ word and append “” at the end of line,


Now, press ctrl-x or F10 to boot. Once the system is booted into emergency mode, we will get the following screen,

To mount / file system in read-write mode, use following command:

# mount -o remount,rw /

Perform all the troubleshooting steps to recover system,


Once you are satisfied with all the troubleshooting steps and then reboot the system with “systemctl reboot” command.

That’s all from this article. I hope you got the clear idea on how we boot our Linux Mint 20 into rescue and emergency mode. Please don’t hesitate to share your feedback and comments in the comments section below.

from Linuxtechi…

Read More

How to Setup NGINX Ingress Controller in Kubernetes

Ingress is one of the important concepts in Kubernetes, which allows external users to access containerized application using FQDN (fully qualified domain name). Though Ingress is not enabled and installed by default in Kubernetes cluster. We must enable to this core concept using third party ingress controllers like Nginx, Traefik, HAProxy and Istio etc.

In this tutorial we will demonstrate how we can enable and use NGINX Ingress controller in Kubernetes Cluster.


As above picture, external users are accessing applications using NGINX Ingress Controller via FQDN and internal ingress controller routes the request to service and then service routes the request to backend end points or pods.

Enable NGINX Ingress Controller in Minikube

Minikube is a single node Kubernetes cluster, we can easily enable nginx ingress controller in minikube by running “minikube addons” command.

Run below command to verify the status of ingress controller,

# minikube addons list


Run following minikube command to enable ingress controller,

[[email protected] ~]# minikube addons enable ingress
* The 'ingress' addon is enabled
[[email protected] ~]#

If we re-run “minikube addons list” command, this time we must see the status of ingress is enabled.

Run following kubectl command to verify whether ingress controller’s pod is running or not.

[[email protected] ~]# kubectl get pods --all-namespaces | grep -i nginx-controller
kube-system      ingress-nginx-controller-7bb4c67d67-gkjj5    1/1     Running            0          20m
[[email protected] ~]#

Above output confirms that nginx-controller has been enabled and started its pod successfully under kube-system namespace.

Setup NGINX Ingress Controller in multi-node Kubernetes cluster

Note: I am assuming Kubernetes cluster is up and running.

Go to master node or control plane node and execute following kubectl command,

$ kubectl apply -f

We will get the following output,


Run following kubectl command to verify the status of nginx-ingress controller pods,

[email protected]:~$ kubectl get pods -n ingress-nginx -l
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-v7ftn        0/1     Completed   0          6m12s
ingress-nginx-admission-patch-njdnf         0/1     Completed   0          6m12s
ingress-nginx-controller-75f84dfcd7-p5dct   1/1     Running     0          6m23s
[email protected]:~$

Perfect, above output confirms that NGINX Ingress Controller has been deployed successfully and it’s pod is currently running.

Test Ingress Controller

To test Ingress controller, we will create two applications based on httpd and nginx container and will expose these applications via their respective services and then will create ingress resource which will allow external users to access these applications using their respective urls.

Deploy httpd based deployment and its service with NodePort type listening on the port 80, Create the following yaml file which includes deployment and service section,

[[email protected] ~]# vi httpd-deployment.yaml
apiVersion: apps/v1
kind: Deployment
  name: httpd-deployment
  replicas: 1
      run: httpd-deployment
        run: httpd-deployment
      - image: httpd
        name: httpd-webserver

apiVersion: v1
kind: Service
  name: httpd-service
  type: NodePort
    run: httpd-deployment
    - port: 80

Save and close the file.

Run kubectl command to deploy above httpd based deployment and its service,

[[email protected] ~]# kubectl create -f httpd-deployment.yaml
deployment.apps/httpd-deployment created
service/httpd-service created
[[email protected] ~]#

Deploy our next NGINX based deployment and its service with NodePort as its type and port as 80, Content of yaml file listed below,

[[email protected] ~]# vi nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
  name: nginx-deployment
  replicas: 1
      run: nginx-deployment
        run: nginx-deployment
Read More

How to Upgrade to Linux Mint 20 (Ulyana)

In this guide, you will learn how to Upgrade Linux Mint 19.3 to the latest version which is Linux Mint 20. Codenamed Ulyana, Linux Mint 20 was released on June 27, 2020.

Linux Mint 20 is a long-term release (LTS) version that will enjoy support up to 2025.  It is based on Ubuntu 20.04 LTS and packs with numerous improvements and enhancements such as :

  • Warpinator – A new file-sharing tool for sharing files with the LAN.
  • Improved Support for NVIDIA Optimus.
  • New themes and polished icons.
  • Revamped system tray.
  • Fractional scaling to support connection to high-resolution displays.
  • A superb collection of 4K background images.

Let’s now see how you can upgrade from Linux Mint 19.3 to Linux Mint 20 and enjoy the latest features and enhancements.

Step 1) Back up your files

Before you get started with upgrading your system, it’s highly recommended that you backup all your files and folders so that you will be in a safe place should the upgrade fail. Additionally, you can backup and restore the entire system using the TimeShift utility. Once you have backed up all your files, you can safely proceed to upgrade your system.

Step 2)  Edit the Repository Lists File

The next step is to modify the official package repositories list file which, by default, contains the entries shown below:


You need to replace ‘tricia with ‘ulyana and all instances of ‘bionic with ‘focal.

To achieve this, edit the file with your preferred text editor as shown

$ sudo vim  /etc/apt/sources.list.d/official-packages-repositories.list

This is what you should have now.


Save and exit the file.

Step 3)  Update & Upgrade the system

For the system to sync with and use the new repository an update of the package lists is required. Additionally, you need to upgrade the entire system’s packages to their latest versions. This can be achieved by running two commands in one line as shown:

$ sudo apt update -y && sudo apt upgrade -y


This procedure takes quite a while. In my case, this took close to 2 hours, probably because my internet connection wasn’t quite fast. I believe the upgrade should be faster with blazing fast internet speeds.

Once the upgrade is done, perform an OS upgrade from Mint 19.3 to Mint 20 by running the command:

$ sudo apt dist-upgrade

This will upgrade the entire system to a new version.


Again, this takes a while depending on your bandwidth speeds. It took about an hour or thereabouts in my case.

Once the upgrade is complete, reboot the system for the changes to take effect.

$ sudo reboot

And voila! The welcome screen will immediately confirm that you are now running on.


To verify this, open your terminal and run the command below

$ cat /etc/os-release


You can also confirm this using the neofetch utility. If Neofetch isn’t installed, you can install it using the command:

$ sudo apt install neofetch -y

On your terminal run the neofetch command as shown

$ neofetch


If you have come this far, you have successfully upgrade Linux Mint 19.3, Tricia, to Linux Mint 20 Ulyana! You can enjoy the look and feel and tons of enhancements and …

Read More

Linux Mint 20 (Ulyana) Installation Steps with Screenshots

Linux Mint has announced its LTS (Long Term Version) release named “Ulyana“, Linux Mint 20.0. According to the Linux Mint team, this version is going to be based on Ubuntu 20.04 LTS. As it is a LTS release so we will get latest updates and patches for the next 5 years (till 2025). While Ubuntu comes with a set release date every time, it is not the case with Linux Mint. In this article, we’ll see all the new features in Linux Mint 20 along with a step-by-step installation guide for Linux Mint 20.0 (Ulyana). For this article purpose, we’ll discuss about the new features and installation guide for the Linux Mint 20 Cinnamon release.

Linux Mint 20 (Ulyana) – New Features

Linux Mint 20 comes loaded with a host of new features as well as with some enhancements to its existing features:

  • Warpinator : One of the coolest features to be introduced is the “Warpinator”. Yes, it is a redo of the old “Giver” application. With Warpinator, file sharing across systems within the local network is made pretty much simple and quick.
  • NVIDIA Optimus : Ulyana support offers support to NVIDIA Optimus card and from the Prime applet card, you can see options to switch from Intel to Nvidia graphics card.
  • Updated System Tray : The system tray looks much more consistent and harmonized than before. From the tray, you can quickly port apps from GtkStatusIcon.
  • Enhanced Performance : Another major highlight of Ulyana is the performance upgrade of many applications and utilities including the Nemo file manager, display refresh rate along with the introduction of fractional scaling. Until now, you can have the same kind of scaling for all monitors, but with Cinnamon 4.6, you can set different scaling levels.
  • Desktop Colors : With Linux Mint 20, you have the option to choose between the dark or light-colored theme as well as change the folder icon colors as well.

Minimum system requirements for Linux Mint 20

  • 2GB RAM
  • Dual Core Processor
  • 20GB free disk space
  • Bootable Media (USB or DVD)
  • Stable Internet (Optional)

Step-by-Step Guide to Install Linux Mint 20 Cinnamon

Step 1) Download Linux Mint 20 Cinnamon edition

Download the Linux Mint 20 Cinnamon edition from the link here

Step 2) Create a Bootable Disk of Linux Mint 20

To install Linux Mint 20 “Ulyana” in your system easily and quickly, you need to install using an USB disk. To do that you need to create a bootable USB disk first. Copy the ISO image you’ve downloaded into the USB disk and make it bootable. Now go to your system boot options and change the boot sequence to boot from the USB disk. Now restart your system.

Step 3) Live Session

When your system restarts, it automatically boots using the USB disk you’ve inserted in the system.


Choose the first option “Start Linux Mint


Now you can see that the Linux Mint 20 installer starting with a Live session. You don’t need to login into the system as the Live session create s new user by itself called “mint” and let you into the Live Session. Remember this is only a temporary session that is being created from the USB disk. To install …

Read More

How to Install OpenStack on CentOS 8 with Packstack

Openstack is a free and open-source private cloud software through which we can manage compute, network and storage resources of our data center with an ease using a single dashboard and via openstack cli commands. In this article we will demonstrate on how to install Openstack on a CentOS 8 system with packstack. Packstack is a command line utility which deploy different components of openstack using puppet modules.

Openstack deployment with packstack is generally used for POC (proof of concept) purpose, so it is not recommended to use packstack for production deployment. Use TripleO method to deploy openstack in production environment.

Minimum System requirements for OpenStack

  • Minimal CentOS 8
  • Dual core Processor
  • 8 GB RAM
  • 40 GB free disk space
  • Stable Internet Connection
  • At least one nic card

My Lab setup details:

  • Hostname –
  • IP –
  • Flat Network –

Let’s deep dive into the openstack installation steps,

Step 1) Set the hostname and update /etc/hosts file

Open the terminal and set the hostname using the following hostnamectl command,

[[email protected] ~]# hostnamectl set-hostname ""
[[email protected] ~]# exec bash

Run below echo command to append hostname entry in /etc/hosts file.

[[email protected] ~]# echo -e "\" >> /etc/hosts

Step 2) Disable Network Manager and Configure Network using network-scripts

Network-Manager is the default tool in CentOS 8 to manager networks but for Openstack we must disable it because openstack networking will not work properly with network-manager. In place of network manager, we must install native network-scripts.

To disable network-manager run the following commands,

[[email protected] ~]# systemctl disable NetworkManager
[[email protected] ~]# systemctl stop NetworkManager

Run following dnf command to install native network-scripts

[[email protected] ~]# dnf install network-scripts -y

Once the network-scripts package is installed then we can manage networking (ifcfg-* files) using native network.service

Now let’s configure IP address in ifcfg-enp0s3 file and start network service

[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3


Save and exit the file and then start network service using following command,

[[email protected] ~]# systemctl start network
[[email protected] ~]# systemctl enable network

Now verify whether IP is assigned to NIC (enp0s3) using ip command,

[[email protected] ~]# ip a s enp0s3


Step 3) Enable OpenStack repositories and install packstack utility

At time of writing this article, ussuri openstack was available, so run the following command to configure its repositories

[[email protected] ~]# dnf config-manager --enable PowerTools
[[email protected] ~]# dnf install -y centos-release-openstack-ussuri

Now installed all the available updates and reboot your system,

[[email protected] ~]# dnf update -y
[[email protected] ~]# reboot

Once the system is available after the reboot, execute following dnf command to install packstack utility

[[email protected] ~]# dnf install -y openstack-packstack

Step 4) Generate answer file and install openstack using packstack

Use packstack command to generate the answer file,

[[email protected] ~]# packstack --gen-answer-file /root/openstack-answer.txt

Once the answer file is generated, edit the following parameters using vi editor,

[[email protected] ~]# vi /root/openstack-answer.txt
[email protected]

Save and exit the file.

Replace the interface name (enp0s3) as per your setup.

Note: Default Tenant network type drive is set as “geneve” and default neutron type driver is set as “geneve and flat”. If wish to change these default parameters, then update following lines in answer file. In this demonstration i am not going to update these parameters.…

Read More

How to Install vsftpd (ftp server) on CentOS 8 / RHEL 8

FTP, short for File Transfer Protocol, is a protocol that provides access to files residing on a server. It’s one of the earliest protocols that enabled users to download files over the internet.  With the FTP protocol, users can download and upload files on servers with ease.

Vsftpd, short for Very Secure FTP daemon, is a secure FTP daemon that is an upgrade of FTP protocol. It enforces secure connections to FTP servers by encrypting traffic send to and from the server, and by so doing, the file transfer is kept safe and secure from hackers.

In this topic, we shine the spotlight on the installation of vsftpd on CentOS 8 / RHEL 8.

Step 1) Install vsftpd using dnf command

Right off the bat, we are going to install vsftpd. To achieve this, we will run the command below:

$ sudo dnf install vsftpd


Press ‘y’ and hit ENTER to get underway with the installation. The installation takes a few seconds and will complete in no time. The output below confirms that vsftpd has been successfully installed.


The output indicates that we have installed vsftpd version 3.0.3-31.el8.x86_64. To confirm this, execute the following command:

[[email protected] ~]$ rpm -q vsftpd
[[email protected] ~]$

The output should tally with the version printed on the terminal upon successful installation. To retrieve more detailed information about Vsftpd, append the -i flag at the end as shown:

$ rpm -qi vsftpd

This will print additional information on the screen such as the Architecture, install date, license and signature to mention a few.


With vsftpd installed, we need it running to facilitate access to file shares.

To start the vsftpd service, run the command:

$ sudo systemctl start vsftpd

You may also want to enable it to start automatically upon a reboot. To achieve this, run the command

$ sudo systemctl enable vsftpd --now

To verify the status of vsftpd on your system, run:

$ sudo systemctl status vsftpd


If you see the “active: (running)” directive in green as indicated on the terminal, then the vsftpd service is up and running.

Step 2) Create a ftp user and its directory

Next, we will create a user that we will use to access the FTP server. In this case, the user will be ftpuser but feel free to give your user a name of your choice.

$ sudo adduser ftpuser
$ sudo passwd ftpuser

With the FTP user in place, we will proceed and create the FTP directory and assign the following permissions and directory ownership.

$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir

We also need to add the FTP user to the /etc/vsftpd/user_list file to allow the user access to the vsftp server.

$ sudo bash -c 'echo ftpuser >> /etc/vsftpd/user_list'

Step 3) Configure vsftpd via its configuration file

So far, we have managed to install and confirm that vsftpd is up and running.  Further adjustments are necessary for Vsftpd to allow users access to the server.

The default configuration file for vsftpd is the /etc/vsftpd/vsftpd.conf file. The file is replete with directives that help fortify your FTP server’s security.

In this section, we will make …

Read More

How to Add Windows Host to Zabbix Server for Monitoring

In the previous article, we looked at how you can add Linux servers on the Zabbix server for monitoring. In this guide, we switch gears and focus our spotlight on how you can add a Windows host system to the Zabbix server for monitoring.

For this tutorial, we will add the Windows server 2019 datacenter edition to Zabbix Server.

Step 1) Download Zabbix Agent for Windows Server

As we saw when adding Linux hosts, the first step when adding a host to the Zabbix server is to install the Zabbix agent on the host system first. With that in mind, head out to the official Zabbix agents download page and download the Zabbix Window’s agent.

By default, this will download it in the ‘Downloads’ folder as shown.


Once downloaded, right-click on the zipped file and select ‘Extract All’ to unzip it as shown.

This unzips it into 2 folders: bin and conf folder. The bin folder contains the Zabbix agent executable file while the conf folder contains the Zabbix agent configuration file – zabbix.agentd.conf


Step 2) Edit the Zabbix configuration file

We need to make a few changes to the zabbix configuration file for the Zabbix agent to communicate with the Zabbix server. Therefore, open the zabbix configuration file – zabbix.agentd.conf – and modify the parameters as shown:

Server=<IP address of the Zabbix server>
ServerActive=<IP address of the Zabbix server>
Hostname=<The FQDN of the Windows server>

Save the changes and exit the file.

Step 3) Install and start Zabbix Agent on Windows server

With all the configurations in order, run command prompt as administrator and install Zabbix using the syntax as shown:

C:\> {full system path to zabbix_agentd.exe) –config  {full system path to} –install

In my case, the command will be:

C:\>C:\Users\winnie95atieno\Downloads\bin\zabbix_agentd.exe --config C:\Users\winnie95atieno\Downloads\conf\zabbix_agentd.conf --install


From the output, we can see that the Zabbix agent has successfully been installed.

To start Zabbix, use the syntax:

C:\> {full system path to zabbix_agentd.exe) –start

The command will therefore be:

C:\>C:\Users\winnie95atieno\Downloads\bin\zabbix_agentd.exe --start


To confirm that the Zabbix agent is running, head out to the ‘Windows Services’ application and confirm that the Zabbix agent is up and running.


Step 4) Configure Windows firewall for Zabbix Agent

By default, the Windows firewall is enabled and blocks incoming and going connections. We are therefore going to make a few changes to allow traffic from the Windows Server host to the Zabbix server.

First, we are going to allow ICMP protocol for the Zabbix server to establish network communication with the Windows host and report any errors when they occur. Therefore, run Windows Powershell with Administrative privileges and execute the command as shown:

netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol="icmpv4:8,any" dir=in action=allow

Next, allows port 10050 – which is the default port that Zabbix listens to  – on the firewall.

netsh advfirewall firewall add rule name="Open Port 10050" dir=in action=allow protocol=TCP localport=10050


To this point, we have successfully installed and configured the Zabbix agent on the Windows host system. The Zabbix agent should be sending system metrics to the Zabbix server. Let’s now go over and see how you can add the Windows host on the Zabbix server.

Step 5)  Add a Windows host

Read More

How to Add Linux Host in Zabbix Server for Monitoring

In the previous article, we have covered how to Install Zabbix Server on CentOS 8. In this guide, we go a step further and show you how you can add a Linux host to the Zabbix Server so that we can monitor various metrics such as CPU load, memory utilization, swap usage, and disk utilization to mention a few.

But first, we need to install the Zabbix Agent on the remote host which is going to ship the metrics of the remote system to the Zabbix server for monitoring. In this guide, we will install the Zabbix agent on Ubuntu 20.04 LTS and CentOS 8.

How to Install Zabbix agent on Ubuntu Linux?

To get started with the installation of Zabbix agent, follow the steps below:

Step 1) Adding the Zabbix repository and Installing Zabbix agent

By default, the Zabbix repository is not included in the Ubuntu repository.  We, therefore, need to manually add it before installing the Zabbix agent. At the time of penning down this guide, the latest version of Zabbix is Zabbix 5.0. Therefore, we are going to add the Zabbix agent that corresponds to that version.

To so do, first download the repository’s Debian package:

For Ubuntu 20.04 (Focal Fossa)

$ wget

After the package is downloaded, update the package list and install  the zabbix-agent using the dpkg package manager as shown:

$ sudo apt update
$ sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

For Ubuntu 18.04 (Bionic Beaver)

For Ubuntu 18.04, execute the commands below to add the repository

$ wget
$ sudo apt update
$ sudo dpkg -i zabbix-release_5.0-1+bionic_all.deb

For Ubuntu 16.04 (Xenial Xerus)

$ wget
$ sudo apt update
$ sudo dpkg -i zabbix-release_5.0-1+xenial_all.deb

Step 2) Configure Zabbix agent

With the successful installation of the Zabbix agent, we need to make a couple of tweaks for the remote system to communicate with the Zabbix server. We are going to make a few adjustments in the configuration file which is /etc/zabbix/zabbix_agentd.conf

In the file locate the Server and hostname attributes and set them to correspond to the server’s parameters. In our case, we have:


Once done, save & exit the configuration file.

Also, ensure that you can reach the Zabbix server by pinging its IP address and hostname.

For the changes to come into effect, restart the Zabbix-agent as shown:

$ sudo systemctl restart zabbix-agent

To ensure it is running, check its status using the command:

$ sudo systemctl status zabbix-agent


From the output, it’s clear that the Zabbix agent is up and running.

Step 3) Configure the firewall rules for zabbix-agent

Finally, we need to configure the firewall to open port 10050 which the zabbix-agent listens on. Therefore, run the commands below:

$ sudo ufw allow 10050/tcp
$ sudo ufw reload

To confirm that the port is open, run:

$ sudo ufw status


Up to this mark, you have successfully installed the Zabbix agent on Ubuntu and your system is ready to be added to the Zabbix server for monitoring.

How to install zabbix agent on CentOS 8 / RHEL 8?

For CentOS 8 / RHEL 8 systems, the steps for installing the Zabbix agent are pretty much similar.

Step 1) Adding the Zabbix repository

Begin …

Read More

How to Install Kubernetes (k8s) on Ubuntu 20.04 LTS Server

Kubernetes (k8s) is a free and open-source container orchestration tool. It is used for deploying, scaling and managing containerized based applications. In this article we will demonstrate how to install Kubernetes Cluster on Ubuntu 20.04 LTS Server (Focal Fossa) using kubeadm. In my lab setup I have used three Ubuntu 20.04 LTS server machines. Following are the system requirements on each Ubuntu system.

  • Minimum of 2 GB RAM
  • 2 Core (2 vCPUs)
  • 15 GB Free Space on /var
  • Privileged user with sudo rights
  • Stable Internet Connection

Following are the details of my lab setup:

  • Machine 1 (Ubuntu 20.04 LTS Server) – K8s-master –
  • Machine 2 (Ubuntu 20.04 LTS Server) – K8s-node-0 –
  • Machine 3 (Ubuntu 20.04 LTS Server) – K8s-node-1 –


Now let’s jump into the Kubernetes installation steps

Step1) Set hostname and add entries in /etc/hosts file

Use hostnamectl command to set hostname on each node, example is shown below:

$ sudo hostnamectl set-hostname "k8s-master"     // Run this command on master node
$ sudo hostnamectl set-hostname "k8s-node-0"     // Run this command on node-0
$ sudo hostnamectl set-hostname "k8s-node-1"     // Run this command on node-1

Add the following entries in /etc/hosts files on each node,    k8s-master    k8s-node-0    k8s-node-1

Step 2) Install Docker (Container Runtime) on all 3 nodes

Login to each node and run the following commands to install docker,

$ sudo apt update
$ sudo apt install -y

Now start and enable docker service on each node using beneath systemctl command,

$ sudo systemctl enable docker.service --now

Run the following command to verify the status of docker service and its version,

$ systemctl status docker
$ docker --version


Step 3) Disable swap and enable IP forwarding on all nodes

To disable swap, edit /etc/fstab file and comment out the line which includes entry either swap partition or swap file.

$ sudo vi /etc/fstab


Save & exit the file

Run swapoff command to disable the swap on the fly

$ sudo swapoff -a

To enable the ip forwarding permanently, edit the file “/etc/sysctl.conf” and look for line “net.ipv4.ip_forward=1” and un-comment it. After making the changes in the file, execute the following command

$ sudo sysctl -p
net.ipv4.ip_forward = 1

Step 4) Install Kubectl, kubelet and kubeadm on all nodes

Run the following commands on all 3 nodes to install kubectl , kubelet and kubeadm utility

$ sudo apt install -y apt-transport-https curl
$ curl -s | sudo apt-key add
$ sudo apt-add-repository "deb kubernetes-xenial main"
$ sudo apt update
$ sudo apt install -y kubelet kubeadm kubectl

Note : At time of writing this article , Ubuntu 16.04 (Xenial Xerus ) Kubernetes repository was available but in future, when the kubernetes repository is available for Ubuntu 20.04 then replace xenial with focal word in above ‘apt-add-repository’ command.

Step 4) Initialize Kubernetes Cluster using kubeadm (from master node)

Login to your master node (k8s-master) and run below ‘kubeadm init‘ command to initialize Kubernetes cluster,

$ sudo kubeadm init

Once the cluster is initialized successfully, we will get the following output


To start using the cluster as a regular user, let’s execute the following commands, commands are already there in output just copy paste …

Read More

How to Install Zabbix Monitoring Tool on CentOS 8/RHEL 8

Zabbix is an open source monitoring tool that can be deployed on-premises or on the cloud depending on that you intend to monitor. With Zabbix, you can monitor a variety of devices: from physical servers, and network devices such as routers and switches on your IT infrastructure as well as cloud infrastructure.

The latest release of Zabbix is Zabbix 5.0 LTS. Zabbix gives users the ability to perform the following tasks:

  • Monitor web services
  • Monitor multiple network devices using the  SNMP protocol.
  • Monitor various database servers such as Oracle, PostgreSQL, MySQL and Microsoft SQL Server.
  • Monitor virtual machines and Hypervisor platforms such as VMware vCenter
  • Monitor crucial system metrics such as CPU load, network utilization and available disk space.

In this guide, we walk you through the installation of Zabbix monitoring tool on CentOS 8 / RHEL 8.


Before getting started, ensure that the following requirements are fulfilled:

  • An instance of CentOS 8 with a minimum of 2GB RAM and 10 GB available disk space.
  • A regular login user with sudo privileges
  • Stable Internet Connection

Let’s now jump in and get on with the installation.

Step 1) Apply Updates and Disable / Turn off SELinux

It is always recommended to apply all the available updates before starting Zabbix installation, so run the following dnf command:

$ sudo dnf update -y

For Zabbix to run smoothly without any issues, it’s recommended that you turn off SELinux. SELinux is enabled by default and you can check the status by running the command:

$ sestatus

To disable SELinux, run the following sed command:

$ sudo sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

Reboot your CentOS 8 or RHEL 8 system for the changes to come to effect.

$ sudo reboot

Step 2) Install LAMP stack

Zabbix is both a front-end and back-end tool and requires a web server, a database engine and PHP installed to function. All these components comprise a LAMP stack. You will, therefore, need to install Apache web server, a database engine (MariaDB is preferred), PHP and requisite PHP modules as shown:

$ sudo dnf install -y httpd mariadb-server php php-cli php-common php-mbstring php-mysqlnd php-xml php-bcmath php-devel php-pear php-gd


Once above packages have been installed successfully then start the webserver and MariaDB database engine as shown

$ sudo systemctl enable httpd --now
$ sudo systemctl enable mariadb --now

Step 3) Create a database for Zabbix

Once the LAMP stack is in place, you need to configure a database for Zabbix server to store its files.

Before setting up the database for Zabbix, first set mysql root password, disable remote root logins and delete test database. Execute “mysql_secure_installation” command, example is shown below:

$ sudo mysql_secure_installation



Now, log in to MariaDB server

$ mysql -u root -p

Use the same root password that you have set in above command.

To create the database (zabbix_db), run the command:

CREATE DATABASE zabbix_db CHARACTER SET utf8 collate utf8_bin;

The create a database user (zabbix_user) and grant then grant all rights on the database.

GRANT ALL ON zabbix_db.* TO 'zabbix_user'@'localhost' IDENTIFIED BY '[email protected]@123#';

Finally, reload the grants table for the changes to take effect and exit



The database for Zabbix is in place, now configure Zabbix repository and install Zabbix …

Read More