How to Install a CentOS 8 Minimal Server

This document describes the installation of a CentOS 8 server. The purpose of this guide is to provide a minimal setup that can be used as basis for our other tutorials here at howtoforge like the perfect server guides or the SAMBA, LAMP and LEMP server tutorials.

Requirements

To get started with the CentOS 8 installation, we will need the installer ISO file. This can either be the CentOS minimal ISO or the DVD ISO file. If you plan to install just this one server then choose the minimal ISO as it is smaller, the installer will download the required packages during installation later. I will install several servers with CentOS 8, therefore I choose the DVD installer ISO so I don't have to download the same packages again for each server.

I will do the installation on a VMware virtual machine. The installation steps on a physical server are the same. If your server is not able to boot from an ISO file, burn the ISO on a DVD and insert that into the DVD drive of the server.

Preliminary Note

This tutorial is based on CentOS 8 server, I use 192.168.0.100 as my IP address in this tutorial and server1.example.com as the hostname. These settings might differ for you, so you have to replace them where appropriate.

Install the CentOS 8 Base System

Boot from your CentOS 8 ISO image. Select Install CentOS 8.

Boot from CentOS DVD or ISO

Next press ENTER.

Boot from system image

Choose the installation language. I am using English with English United States here, so I just press Continue:

Choose language

Next, we get the following screen:

CentOS Installer overview

I will start to customize the settings starting with LOCALIZATION in DATE & TIME Click on DATE & TIME. Select your time zone, in my case, I am selecting Europe as Region and Berlin as City. Press Done when finished.

Select the Timezone

It will set the server DATE & TIME to the Europe/Berlin timezone. Next, I will customize the KEYBOARD layout, Click on the KEYBOARD to start the setup dialog.

Go to keyboard layout settings.

Press the + icon to add another keyboard layout:

Add an additional keyboard layout

It will show the following window with the list of available keyboard layouts. In my case, I select German and click on the Add. button to add the keyboard layout.

Add German Keyboard layout on CentOS 8

Next, we customize the LAYOUT SWITCHING OPTIONS by pressing Options:

Layout switching

You can use any key combination for switching between keyboards, in my case I am using Alt+Ctrl. After selecting your desired key combination, press Done.

Customize layout switching option.

Next press Done.

Layout switching

Now we can add LANGUAGE SUPPORT if you don't want to use English. Click on "LANGUAGE SUPPORT" to open the dialog.

Multi Language support

By default, CentOS comes with English language preinstalled, but we can add more languages easily. In my case, I am adding Deutsch German with Deutsch (Deutschland) as the additional language. Press Done after selection

Add additional language in CentOS

Next, we go to SOFTWARE > INSTALLATION SOURCE and select the installation media.

Go to software installation menu

Next, you will see that the installation source is "Auto-detected installation media", if you have any other source of installation like a network install then you can set the path in the "On the network"  field with and without proxy from Proxy Setup. Additionally, we can add Additional repositories if needed. Then press Done.

Choose installation source

Next, we will proceed to SOFTWARE SELECTION, by default it comes with Minimal Install.

Software selection menu

We can add more software packages if required (when you use the install DVD and not minimal installer). In my case, I need only a Minimal Install(Basic Functionality) setup to install the software later with yum, so I will save the settings by pressing Done.

Add additional software packages here

We move towards SYSTEM and select INSTALLATION DESTINATION.

Installation Destination

When you need a manual partitioning scheme then you can select I will configure partitioning, in my case I will prefer Automatically configure partitioning after that press Done.

Select the installation destination for CentOS

Next, we will customize our NETWORK & HOSTNAME by selecting that.

Configure the network in CentOS

I will use the hostname server1.example.com and customize the ethernet setup by pressing Configure.

Set the hostname

The next screen will look like this, now we add the IPv4 Settings by selecting the same. If you have IPv6 then you add it in IPv6 Settings.

Network card details

Next, you can set up the network to match your local network setup. In my case, I use a static IP so I will select Manual

Set IPv4 mode to manual

Add the entries for Address, Netmask and Gateway as per your static IP environment. In my case I am using Address as 192.168.0.100, Netmask as 255.255.255.0, Gateway as 192.168.0.1 and DNS servers as 8.8.8.8  8.8.4.4 These values may vary according to your network environment. After that press Save.

Configure the IPv4 details

IMPORTANT: If you do not have an IPv6 internet connection, then set IPv6 from auto to ignore on the IPv6 tab, otherwise you won't be able to reach the internet from this server on IPv4 as CentOS seems to ignore the correct IPv4 setup then and uses IPv6 instead which fails.

IPv6 settings

Next, we have to turn the connection ON as shown in the screenshot below. Further press Done.

Connect the network

Set the server hostname in the "Host Name" field and click on apply button.

Set the correct hostname

Now we are ready to start the installation process, you might want to cross-check all the settings and then press Begin Installation.

Start the CentOS 8 installation

The installation process will start now and you get a small blue progress bar in the next windows. Now we have to set the ROOT PASSWORD and add a new non-root user in the USER CREATION option. I will first go for the root password.

Configure users and passwords while CentOS is getting installed

Enter a secure password of your choice and press Done

Choose secure root password

Next, we will go for USER CREATION.

User Creation

Next, I will create a non-root user, as in my case I used the Full name  "Howtoforge" and Username "howtoforge", check the option Require the password to use this account and then press Done. Off-course you should use a username and password of your choice.

Add a new user on CentOS 8

Press Done. Have patience and wait for the completion of the setup.

After completion of the installation, it will ask to reboot the server, just press Finish configuration.

Reboot

The server reboots and will request your username and password afterwards.

CentOS 8 booting the first time

Now we are ready to log in with the user that we just created above or we can use the root credentials.

The first login on CentOS 8

Login as the root user to the server so we can do some final installation steps.

First login on CentOS 8

The first one is to install all available updates with dnf.

dnf update

confirm with "y" to proceed with the installation of the updates.

I will install two command-line editors to be able to edit configuration files on the shell:

dnf install nano vim

Network Configuration

CentOS 8 minimal doesn't come pre-installed with the ifconfig command we will install it as follows:

yum install net-tools

If you want to change or see the network configuration file, just edit the file

nano /etc/sysconfig/network-scripts/ifcfg-ens33

It will be like this when you configured a static IP address:

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="233f2c1b-877c-4b28-b17d-1eb091ded288"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.0.100"
PREFIX="24"
GATEWAY="192.168.0.1"
DNS1="8.8.8.8"

Or like this when you use DHCP:

TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="ens33"
UUID="233f2c1b-877c-4b28-b17d-1eb091ded288"
DEVICE="ens33"
ONBOOT="yes"
HWADDR="00:50:56:15:23:79"
PEERDNS="yes"
PEERROUTES="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"

Change the values if required.

Note: The above DEVICE name may vary so please check the equivalent file in the directory /etc/sysconfig/network-scripts.

Adjust /etc/hosts

Adjust the file /etc/hosts as follows:

nano /etc/hosts

Make the values like this:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100   server1.example.com     server1

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    

Congratulations! Now we have basic minimal CentOS 8 server setup which provides a solid basis for our other tutorials.

Download CentOS 8 server as a virtual machine

This setup is available as a virtual machine download in ova/ovf format (compatible with VMWare and Virtualbox) for howtoforge subscribers.

Log in details for the VM

  • The root password is: howtoforge
  • The password of the "howtoforge" user is: howtoforge

Please change both passwords on the first login.

  • The IP address of the VM is 192.168.0.100
Share this page:

Suggested articles

1 Comment(s)

Add comment

Comments

By: Arman at: 2020-08-05 16:54:38

Hello,

Many Thanks for Your instructions.

But, Please How can I minimally install the desktop module KDE or GNOME during the installation of centos 8.2 Server?This is very, very important for my work.

Arman