Install LAMP in RHEL

Learn to install LAMP in RHEL. Linux, Apache, Mysql/MariaDB, Php/PHPmyadmin i.e. LAMP is a complete application stack used for development, testing & hosting dynamic websites.

LAMP installation

LAMP is an application stack which helps you to develop, test, and host dynamic website. You can test dynamic applications as well with this stack. Basically LAMP stands for Linux Apache Mysql/MariaDB and PHP/PHPMyadmin.

Linux gives a kernel platform on which the rest of the stack runs. Apache provides your web-server which is front-end for your application or website. Mysql/MariaDB is a database you could use for data on your site or app. PHP is as you know server-side strong scripting language just fit for web application development.

Without any further delay, let’s run through commands to setup and configure your LAMP stack. For the demonstration, I will be using RHEL 7 on AWS here to setup LAMP.

Setting Linux in LAMP

Nothing to tell you here! Having a Linux server already pass you through this. Here are a few installations articles from our factory.

Setting up Apache in LAMP

Installing Apache is not a big deal now. Follow the below list of commands to install, enable, and start Apache webserver.

root@kerneltalks # yum install httpd
root@kerneltalks # systemctl enable httpd
root@kerneltalks # systemctl start httpd

Check and make sure you get Apache welcome page in the browser after entering the IP address of the server. Open port 80 in Linux firewall, network firewall, or AWS security group if necessary.

We have a detailed tutorial to install Apache in Linux & install Tomcat Apache 9 if you want to refer.

Apache test page

Setting up Mysql in LAMP

MariaDB is a MySQL database we will be installing here. Use the below commands to install and start MariaDB.

root@kerneltalks # yum install mariadb-server mariadb
root@kerneltalks # systemctl start mariadb

Secure your MariaDB setup by running below command –

root@kerneltalks # /usr/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Now you are running the MySQL database i.e. MariaDB and secured it too. You can test by connecting to database and running simple command –

root@kerneltalks # mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 18
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SELECT VERSION();
+----------------+
| VERSION()      |
+----------------+
| 5.5.60-MariaDB |
+----------------+
1 row in set (0.00 sec)

Setting up PHP in LAMP

Install PHP to complete this step. Install PHPMyAdmin if you are planning to host a dynamic website using CMS like WordPress.

root@kerneltalks # yum install php

You can test sample PHP code like one below by placing it in /var/www/html (default webserver directory)

# cat /var/www/html/php_info.php
<?php phpinfo(); ?>

It will shows PHP information in web browser when you hit http://ip-address/php_info.php

PHP version test page

How to list PHP extensions in Linux

You can check active PHP modules using the below command. If an extension is missing you need to install its corresponding package on the system. Generally, it follows naming convention like PHP-extension i.e. for curl extension you need to search and install php-curl or phpX-curl where X is PHP version

# php -m
[PHP Modules]
Core
ctype
date
dom
filter
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
pcre
PDO
pdo_mysql
pdo_sqlite
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

That’s it. You have a working web server (Apache), Database (MariaDB), and web development scripting language (PHP) running on Linux! Complete LAMP stack is at your service!

How to install Apache Tomcat 9 in Linux

Learn how to install Apache 9 in Linux like RedHat, CentOs, Suse, OEL etc.

Apache Tomcat 9 installation

This is a quick post to a list of steps for Apache Tomcat 9 installation on Linux. Let’s start with download the software. Get your Apache Tomcat 9 from the official download page.

Apache being a webserver is part of LAMP stack. Red more about LAMP here.

First download core binary file from the official download page. Use tools like wget to download a file right on your server itself.

root@kerneltalks # wget http://mirrors.estointernet.in/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz

Now extract the tarball. You will have apache-tomcat-9.0.14 directory after unzipping.

root@kerneltalks # tar -xvf apache-tomcat-9.0.14.tar.gz

Now move the directory or its content to your required directory where you want your Apache Tomcat binaries should stay & you are done. For demonstration, I moved them in /opt

root@kerneltalks #  mv apache-tomcat-9.0.14 /opt

You have startup.sh and shutdown.sh scripts in the bin directory. Test them and you are all set. If you do not have java installed on your server, you will see below error while you try to start Apache.

root@kerneltalks #  cd /opt/apache-tomcat-9.0.14/bin
root@kerneltalks # sh startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

Install java package using your package manager according to Linux you use. The package installation will set the above variables automatically. Then you can try starting Apache again.

root@kerneltalks # ]# sh startup.sh
Using CATALINA_BASE:   /opt/apache-tomcat-9.0.14
Using CATALINA_HOME:   /opt/apache-tomcat-9.0.14
Using CATALINA_TMPDIR: /opt/apache-tomcat-9.0.14/temp
Using JRE_HOME:        /
Using CLASSPATH:       /opt/apache-tomcat-9.0.14/bin/bootstrap.jar:/opt/apache-tomcat-9.0.14/bin/tomcat-juli.jar
Tomcat started.

And here you go. Your Apache instance is started with the default configuration. It listens on port 8080 by default. You can open your server IP in a browser and make sure you get default Apache page like below –

Apache welcome page

If not then check if port 8080 is listening or not. If you have a server in AWS, then make sure you open port in the related security group of your instance.

root@kerneltalks # netstat -an |grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN

Try restarting instance and you should be pass through!

How to install sar in SUSE Linux

Learn how to install sar utility in SUSE Linux. Also, it lists commands to enable sar to collect monitoring data in the background.

sar command in SUSE Linux

sar is a monitoring utility mostly native to Linux. But with SUSE Linux you can not find sar pre-installed. There you will see an error like one below :

root@kerneltalks # sar
If 'sar' is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf sar

Read our articles regarding sar tool :


How to install sar in SUSE Linux

To make sar available on SUSE, you need to install package named sysstat. If you have zypper repo configured then you can directly run below command :

root@kerneltalks # zypper in sysstat
Refreshing service 'SUSE_Linux_Enterprise_Server_12_SP3_x86_64'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  sysstat

1 new package to install.
Overall download size: 358.7 KiB. Already cached: 0 B. After the operation,
additional 1.3 MiB will be used.
Continue? [y/n/...? shows all options] (y): y
Retrieving package sysstat-12.0.2-10.15.1.x86_64
                                           (1/1), 358.7 KiB (  1.3 MiB unpacked)
Retrieving: sysstat-12.0.2-10.15.1.x86_64.rpm ..............[done (160.0 KiB/s)]
Checking for file conflicts: .............................................[done]
(1/1) Installing: sysstat-12.0.2-10.15.1.x86_64 ..........................[done]

If zypper repo is not configured you can download appropriate rpm for your kernel version and install using rpm command. We used SUSE12SP3 here for a demonstration.

Once done you need to start sysstat service so that it will start collecting monitoring data in the background. Also, enable this service at boot so that after reboot it starts itself and keeps on collecting data in the background.

root@kerneltalks # systemctl enable sysstat
Created symlink from /etc/systemd/system/multi-user.target.wants/sysstat.service to /usr/lib/systemd/system/sysstat.service.

root@kerneltalks # systemctl start sysstat

That’s it. You have installed sar on SUSE Linux and started collecting monitoring data.

How to disable GUI in SUSE Linux

Learn how to disable GUI in SUSE Linux. Also, how to enable GUI at boot time in SUSE Linux.

Disable GUI in SUSE Linux

Sometimes when installing with ISO you end up in booting the Suse Linux system in GUI mode. In this short article, we will walk you through how to disable GUI and how to enable GUI in Suse Linux.

For the demonstration, we used SUSE12 in this article. You can use system control systemctl to set the default for the next reboot. We will be using this feature to enable or disable GUI in SUSE Linux

Disable GUI in SUSE Linux

Note that, you will require downtime for this activity. You can disable GUI for the next reboot. So once you run the command you need to reboot your server. To disable GUI in SUSE Linux run below command –

kerneltalks:~ # systemctl set-default multi-user
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

This will set the system to boot into CLI mode only. Now reboot your server and you can see server boots into CLI.

Suse CLI login screen

Enable GUI in SUSE Linux

If you want to go back into GUI mode again, run below command –

kerneltalks:~ # systemctl set-default graphical
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

Reboot the server and you will be back greeted with GUI login screen.

SUSE GUI login

That’s it. You can toggle CLI or GUI using systemctl command. The only thing is you need a reboot each time you toggle.

How to restart inetd service in Linux

Learn how to restart inetd service in Linux. Xinetd service is a replacement for inetd service in new Linux versions.

inetd or xinetd service in Linux

inetd is internet daemon. Inetd is responsible for internet services like telnet, pop3, ftp, etc. Whenever a packet comes over the network to a server on a particular port, inetd is responsible to check it and launch the appropriate program to handle the connection request. For checking port information and its related services it consults /etc/services file.

Below is a list of commands to manage inetd service. In newer systems inetd is replaced with more powerful daemon xinetd.

Start inetd service
# /etc/init.d/inetd start
Stop inetd service
# /etc/init.d/inetd stop
Restart inetd service
# /etc/init.d/inetd restart OR # killall -HUP inetd

All inetd configuration can be found in file /etc/inetd.conf

On newer systems, inetd is being replaced by xinetd. xinetd is an Extended internet daemon. If you fail to run above command your system probably runs xinetd as an inetd replacement. In that case, follow below commands –

Start inetd service
# service xinetd start 
Stop inetd service
# service xinetd stop
Restart inetd service
# service xinetd restart
Check xinetd service state
root@kerneltalks # service xinetd status
● xinetd.service - Xinetd A Powerful Replacement For Inetd
   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-01-02 17:17:31 EST; 6s ago
 Main PID: 17135 (xinetd)
    Tasks: 1 (limit: 512)
   CGroup: /system.slice/xinetd.service
           └─17135 /usr/sbin/xinetd -stayalive -dontfork

All the services being handled by xinetd can be found under/etc/xinetd.d directory. Each service has its own configuration file under /etc/xinetd.d directory.

How to configure proxy in RHEL, Suse, OEL, CentOS, Ubuntu Linux

Learn how to configure a proxy in Linux flavors like RHEL, SUSE, OEL, CentOS, Ubuntu, etc.

Proxy in Linux


One of the basic tasks after building a new system in your environment is to set up a proxy to enable internet access on the server. In this tutorial, we will walk you through step by step how to configure internet proxy in major Linux flavors like RHEL, SUSE, OEL, Centos, Ubuntu, etc. Without further delay lets jump in.

How to setup proxy in Linux using shell variables

Typically you can set up internet proxy details using shell variable http_proxy. The syntax is below –

root@kerneltalks # export http_proxy=http://username:password@proxy-servername:port/

For example, let’s consider below proxy server details which we need to configure.

  • Proxy server: kerneltalks-proxy.com
  • Port: 8081
  • Username: shrikant
  • Password: @Fnr5*r$9Lp

Above proxy uses authentication so we can define it as –

root@kerneltalks # export http_proxy=http://shrikant:@Fnr5*r$9Lp@kerneltalks-proxy.com:8081/

If you do not have authentication at proxy then it can be defined as :

root@kerneltalks # export http_proxy=http://kerneltalks-proxy.com:8081/

The above proxy configuration is for the current user only. To configure a proxy for all users on the system, just add above command entry into /etc/profile file on your system and it will be applicable/available to all users on the system.

You can configure no_proxy hosts using the below command. no_proxy hosts are those destinations that you want to reach directly bypassing proxy for them.

root@kerneltalks # export no_proxy="kerenltalks.com,10.10.2.3"

How to setup proxy persistently using shell variable

It’s pretty much the same as above. The only thing is we are going to save this variable in /etc/environment. So every time anyone logs into the system, this proxy variable loaded into his/her login environment automatically.

echo "http_proxy=http://proxy-servername:port" >>/etc/environment

How to setup proxy using yast in SUSE Linux

yast is configuration manager native to SUSE Linux which gives nice text-based GUI in PuTTY terminal! If you are used to it, you can configure proxy from yast as well.

Navigate to Network Services -> Proxy

Suse yast proxy configuration

Check Enable Proxy using tab. It will allow you to fill in details below like server details, authentication, etc. Fill in details and you can test the configuration by selecting Test Proxy Settings. After successful testing select OK.

You can even mention hostnames, IPs under No Proxy Domainsso that they can be connected bypassing the proxy. This is very much helpful when you have internet and local network repos configured under zypper. By adding FQDN / IPof local patching server under No Proxy Domain you can reach a local patching server while the proxy is enabled.

You will be presented with the notice “It is recommended to relogin to make new proxy settings effective.” Re-login and test internet access.


How to setup proxy in RHEL using GUI

In RHEL, navigate to Application -> System Tools -> Settings -> Network

Network settings in RHEL

Select the Network Proxy and then Manual method.

RHEL proxy configuration

Here fill in proxy server details along with port and you are good to go. Add hostnames or IPs in Ignore Hosts so that they can be connected bypassing the proxy. This is helpful when you have repo from the local server and internet configured under yum. By entering local patching server FQDN/ IP in Ignore Hostsyou can use local patching server in YUM while the proxy is enabled server-wide.


How to ignore proxy for local patching server in Linux

As I mentioned a couple of times above, here is a particular case you may face in your system. You have a repo manager like zypper is configured with repo from the internet and also from a local patching server (with FQDN). It’s the same as ‘No proxy for‘ or ‘Bypass proxy server for local addresses‘ setting in Windows.

Now when you enable proxy, internet repo works (via proxy) and local patching server repo won’t work. Since it tries to reach a local patching server over the internet and couldn’t do it (via proxy). If you disable proxy, your local patching repo will work and internet repo won’t.

In such a case, you need a local repo to bypass proxy and internet repo should go through the proxy. Here you can define local server FQDN/IP in Ignore Hosts or No Proxy Domains as I explained earlier.

From CLI, you can edit file /etc/sysconfig/proxy add entry in below line –

## Type:        string(localhost)
## Default:     localhost
#
# Example: NO_PROXY="www.me.de, do.main, localhost"
#
NO_PROXY="localhost, 127.0.0.1, patchingsvr.kt.com"

Here entry patchingsvr.kt.com makes proxy bypass for this local server. The above sample file is from SUSE Linux.

How to configure Cockpit in RHEL 8

Learn how to install, configure and use cockpit web console in RHEL 8.

Install, configure and use Cockpit in RHEL 8

What is cockpit web console?

The cockpit is an open-source project aims at Red Hat Enterprise Linux web console using which system can be administered. Introduced in RHEL 7, Cockpit provides a user and device friendly web console to manage your systems. Being a web console, it can be accessed over mobile devices as well. Obviously CLI (Command Line Interface) is the wizard wand in sysadmin’s hand but sometimes small and quick changes can be done through this console. Cockpit is integrated systemd. Let’s see how to install the cockpit on RHEL.

How to install Cockpit web console in RHEL 8?

The cockpit is offered with a package of the same name. Install package cockpit, using yum to install the Cockpit web console in RHEL 8. If YUM configuration is not in place on your system, you can always mount RHEL 8 BETA ISO and configure yum with this ISO as a repo. Below are commands for it –

[root@kerneltalks ~]# cat /etc/yum.repos.d/dvdiso.repo
[dvdiso]
name=RedHat DVD ISO
baseurl=file:///mnt/dvd/BaseOS/
enabled=1
gpgcheck=1
gpgkey=file:///mnt/dvd/BaseOS/RPM-GPG-KEY-redhat-release
[root@kerneltalks BaseOS]# yum repolist
RedHat DVD ISO                                                                                                                          1.0 MB/s | 2.2 MB     00:02
Last metadata expiration check: 0:00:01 ago on Wed 28 Nov 2018 12:30:43 PM EST.
repo id                                                                      repo name                                                                            status
dvdiso                                                                       RedHat DVD ISO                                                                       1,688

Now install package cockpit using yum –

[root@kerneltalks ~]# yum --nogpg install cockpit
Last metadata expiration check: 0:01:21 ago on Wed 28 Nov 2018 12:30:43 PM EST.
Dependencies resolved.
========================================================================================================================================================================
 Package                                               Arch                            Version                                    Repository                       Size
========================================================================================================================================================================
Installing:
 cockpit                                               x86_64                          180-1.el8                                  dvdiso                           66 k
Installing dependencies:
 cockpit-bridge                                        x86_64                          180-1.el8                                  dvdiso                          553 k
 cockpit-system                                        noarch                          180-1.el8                                  dvdiso                          1.6 M
 cockpit-ws                                            x86_64                          180-1.el8                                  dvdiso                          820 k
 glib-networking                                       x86_64                          2.56.1-1.el8                               dvdiso                          155 k
 gsettings-desktop-schemas                             x86_64                          3.28.1-1.el8                               dvdiso                          619 k
 libmodman                                             x86_64                          2.0.1-17.el8                               dvdiso                           36 k
 libproxy                                              x86_64                          0.4.15-5.2.el8                             dvdiso                           74 k
Installing weak dependencies:
 redhat-logos                                          x86_64                          80.5-1.el8                                 dvdiso                          975 k
 subscription-manager-cockpit                          noarch                          1.23.8-1.el8                               dvdiso                          952 k

Transaction Summary
========================================================================================================================================================================
Install  10 Packages

Total size: 5.7 M
Installed size: 13 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                1/1
Installed: redhat-logos-80.5-1.el8.x86_64
  Installing       : redhat-logos-80.5-1.el8.x86_64                                                                                                                1/10
  Running scriptlet: redhat-logos-80.5-1.el8.x86_64                                                                                                                1/10
Installed: redhat-logos-80.5-1.el8.x86_64
Installed: libmodman-2.0.1-17.el8.x86_64
  Installing       : libmodman-2.0.1-17.el8.x86_64                                                                                                                 2/10
  Running scriptlet: libmodman-2.0.1-17.el8.x86_64                                                                                                                 2/10
Installed: libmodman-2.0.1-17.el8.x86_64
Installed: libproxy-0.4.15-5.2.el8.x86_64
  Installing       : libproxy-0.4.15-5.2.el8.x86_64                                                                                                                3/10
  Running scriptlet: libproxy-0.4.15-5.2.el8.x86_64                                                                                                                3/10
Installed: libproxy-0.4.15-5.2.el8.x86_64
Installed: gsettings-desktop-schemas-3.28.1-1.el8.x86_64
  Installing       : gsettings-desktop-schemas-3.28.1-1.el8.x86_64                                                                                                 4/10
Installed: gsettings-desktop-schemas-3.28.1-1.el8.x86_64
Installed: glib-networking-2.56.1-1.el8.x86_64
  Installing       : glib-networking-2.56.1-1.el8.x86_64                                                                                                           5/10
Installed: glib-networking-2.56.1-1.el8.x86_64
Installed: cockpit-bridge-180-1.el8.x86_64
  Installing       : cockpit-bridge-180-1.el8.x86_64                                                                                                               6/10
Installed: cockpit-bridge-180-1.el8.x86_64
Installed: cockpit-system-180-1.el8.noarch
  Installing       : cockpit-system-180-1.el8.noarch                                                                                                               7/10
Installed: cockpit-system-180-1.el8.noarch
Installed: subscription-manager-cockpit-1.23.8-1.el8.noarch
  Installing       : subscription-manager-cockpit-1.23.8-1.el8.noarch                                                                                              8/10
Installed: subscription-manager-cockpit-1.23.8-1.el8.noarch
Installed: cockpit-ws-180-1.el8.x86_64
  Running scriptlet: cockpit-ws-180-1.el8.x86_64                                                                                                                   9/10
  Installing       : cockpit-ws-180-1.el8.x86_64                                                                                                                   9/10
  Running scriptlet: cockpit-ws-180-1.el8.x86_64                                                                                                                   9/10
Installed: cockpit-ws-180-1.el8.x86_64
Installed: cockpit-180-1.el8.x86_64
  Installing       : cockpit-180-1.el8.x86_64                                                                                                                     10/10
Installed: cockpit-180-1.el8.x86_64
  Running scriptlet: redhat-logos-80.5-1.el8.x86_64                                                                                                               10/10
  Running scriptlet: cockpit-180-1.el8.x86_64                                                                                                                     10/10
  Verifying        : cockpit-180-1.el8.x86_64                                                                                                                      1/10
  Verifying        : cockpit-bridge-180-1.el8.x86_64                                                                                                               2/10
  Verifying        : cockpit-system-180-1.el8.noarch                                                                                                               3/10
  Verifying        : cockpit-ws-180-1.el8.x86_64                                                                                                                   4/10
  Verifying        : glib-networking-2.56.1-1.el8.x86_64                                                                                                           5/10
  Verifying        : gsettings-desktop-schemas-3.28.1-1.el8.x86_64                                                                                                 6/10
  Verifying        : libmodman-2.0.1-17.el8.x86_64                                                                                                                 7/10
  Verifying        : libproxy-0.4.15-5.2.el8.x86_64                                                                                                                8/10
  Verifying        : redhat-logos-80.5-1.el8.x86_64                                                                                                                9/10
  Verifying        : subscription-manager-cockpit-1.23.8-1.el8.noarch                                                                                             10/10

Installed:
  cockpit-180-1.el8.x86_64          redhat-logos-80.5-1.el8.x86_64   subscription-manager-cockpit-1.23.8-1.el8.noarch   cockpit-bridge-180-1.el8.x86_64
  cockpit-system-180-1.el8.noarch   cockpit-ws-180-1.el8.x86_64      glib-networking-2.56.1-1.el8.x86_64                gsettings-desktop-schemas-3.28.1-1.el8.x86_64
  libmodman-2.0.1-17.el8.x86_64     libproxy-0.4.15-5.2.el8.x86_64

Complete!

Now, make sure you have open firewall ports for Cockpit. Mostly it’s enabled by default during installation but its always good to verify.

[root@kerneltalks ~]# firewall-cmd --add-service=cockpit --permanent
Warning: ALREADY_ENABLED: cockpit
success

Next step is to enable and start Cockpit using sysctl command so it will load on every boot.

[root@kerneltalks ~]# systemctl enable cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.

[root@kerneltalks ~]# systemctl start cockpit.socket
[root@kerneltalks ~]# systemctl status cockpit.socket
● cockpit.socket - Cockpit Web Service Socket
   Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor preset: disabled)
   Active: active (listening) since Wed 2018-11-28 12:38:52 EST; 1s ago
     Docs: man:cockpit-ws(8)
   Listen: [::]:9090 (Stream)
  Process: 9823 ExecStartPost=/bin/ln -snf active.motd /run/cockpit/motd (code=exited, status=0/SUCCESS)
  Process: 9816 ExecStartPost=/usr/share/cockpit/motd/update-motd  localhost (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 11516)
   Memory: 392.0K
   CGroup: /system.slice/cockpit.socket

Nov 28 12:38:52 kerneltalks.com systemd[1]: Starting Cockpit Web Service Socket.
Nov 28 12:38:52 kerneltalks.com systemd[1]: Listening on Cockpit Web Service Socket.

This will enable and activate the Cockpit service on RHEL. Since service is running now, Cockpit will listen to port 9090 by default. Check if the Cockpit service is listening on a port and open up your browser to access the web console.

How to connect Cockpit web console on RHEL 8

As we already mentioned, by default Cockpit listens on port 9090. All you have to do is open up a browser and go to https://ip_or_hostname:9090 URL and you will be connected to the Cockpit web console. So, in our case the Cockpit URL is https://192.168.56.101:9090. You will be greeted with the login screen as below –

Cockpit web console in RHEL 8

Use root account to login and you will be presented with the home screen of Cockpit web administration console like below –

System administration using Cockpit web console

That’s it. You have web console in front of you. You can see utilization metrics in real time on home screen. Left hand side menu gives you ways to manage your system. Explore!

RHEL 8 BETA installation with screenshots

Complete step by step guide of RHEL 8 BETA installation with screenshots. 

RHEL 8 BETA installation

In this article, we will walk you through step by step installation of Red Hat Enterprise Linux 8.0 BETA along with screenshots. Before you begin to read what’s new in RHEL 8 and how to download RHEL 8 ISO. For this article, we installed RHEL 8 BETA on Oracle VM VirtualBox but the process almost remains the same whether you install on VM or physical machine. So, let’s learn how to install RHEL 8 BETA with screenshots.

Boot server with bootable ISO and you will be presented with below boot menu. Test media and install will be by default selected and you get the 60-sec timer to cancel it out. Since ISO is almost 6.5 GB it takes a while to test media so you can cancel this out, move up and choose to install without checking media.

RHEL 8 installer boot screen

Select Install Red Hat Enterprise Linux 8.0 and press enter

RHEL 8 BETA installer will load into memory and you will be presented with a language selection screen.

RHEL 8 installer language selection screen

Note here that Red Hat highlighted its PRE-RELEASE/TESTING so you understand it’s not to run in your live environment.

Select language of your choice and click Continue

Now, before moving forward installer will again remind you that this is pre-release software with below notice screen.

RHEL 8 installer notice

Click I want to proceed

Now you will see installation summary screen. Here all the custom configurations to be made.  Everything is segregated in three categories :

  1. Localization
    • Keyboard
    • Language Support
    • Time & Date
  2. Software
    • Installation Source
    • Software Selection
  3. System
    • Installation Destination
    • Kdump
    • Network & Host Name
    • Security Policy
    • System Purpose

You can click on each category and customize it according to your choice. We will walk you through each of them with screenshots except Keyboard and Language Support.

Lets start with Time & DateClick on it and you will see below screen –

RHEL 8 installer notice

Select timezone, date, time of your choice. You can even setup NTP here. Slide button on upper-right corner next to Network Time to configure NTP.

Click Done at top left corner once done.

You will come back to the installation summary screen. Click on Installation Source. It will bring up below screen –

RHEL 8 install source

By default, the install source is selected from where you boot up this system. You can notice additional AppStream repo here which is one of the features of RHEL 8 BETA. Click DoneYou will be back on the installation summary screen.

Click Software Selection. You will see below screen –

RHEL 8 install software selection

Here you select base and add-ons depending on your server role. Since we are installing it for testing, we choose minimal install. Click DoneYou will be back on the installation summary screen.

Click Installation Destination and you get access to partition your root disk. By default, Automatic partitioning is selected.

RHEL 8 installer manual partitioning screen

Here you can select different custom partitioning along with different volume managers. We re sticking with automatic partitioning here. Click DoneYou will be back on the installation summary screen.

Click KDUMP and you will be able to do kdump configuration.

RHEL 8 kdump configuration

You can enable/disable kdump here. Also if enabled you can specify reserve memory for it or leave to automatic. Click DoneYou will be back on installation summary screen.

Click Network & Host Name. Here hostname and networking details can be configured. You will be presented with below screen –

RHEL 8 hostname and network configuration

Define hostname in the lower left bottom space. To configure networking details click Configure and it will pop up below network configuration window.

RHEL 8 network configuration

Configure details. Click Save. Come back to the previous window.  Click DoneYou will be back on the installation summary screen.

Click Security Policy and below screen will allow you to define security policies of your choice. You can even specify URL to fetch policies

RHEL 8 installation security policy selection screen

Once done click DoneYou will be back on installation summary screen.

Click System Purpose to define the role of server. Below window let you define your server role –

RHEL 8 installation system purpose selection screen

Select appropriately. We selected it as an RHEL, self-supported test server. Click DoneYou will be back on the installation summary screen.

Now all customization according to your requirement has been done. You are now ready to start OS installation. Hit Begin installation button. The installer will start partitioning your disks and prepare them for installation. Meanwhile, it shows you below the screen to set the root password and add users to the system.

RHEL 8 root password setup

Set root password, sit back, and relax while installer complete setup! Once setup finishes, it will show up completion screen as below and ask for a reboot.

Click Reboot to enter whole new world of Red Hat Enterprise Linux 8.0 BETA!

System reboots and here you have first ever boot menu of RHEL 8.0

Booting RHEL 8 first time

Default kernel will be automatically selected to boot in 5s. Let system boot and then login !!

And here we are! On root hash prompt of RHEL 8.0 BETA!!!

You have successfully completed RHEL8 installation and now it’s ready to use.

What’s new in RHEL 8

A quick article listing what’s new in RHEL 8 BETA. Also, enlist steps to download RHEL 8 BETA ISO from the Red Hat developer portal.

RHEL 8 Beta version got released recently (Nov 14, 2018) and its Beta version is available for developers! In this quick post, we will walk you through features RHEL 8 offering currently and how to download your own RHEL 8 ISO for testing. If you are looking for more details then follow RHEL 8 release notes by Red Hat.

How to download RHEL 8 ISO

Red Hat Enterprise Linux 8 Beta is available to download on their developers portal. You need to sign up for a free account on the Red Hat developers portal. Login to the portal using your created account Navigate to download section. There you can check the link to RHEL 8 separate page or you can directly go to RHEL 8 page here. Here you will find links to download RHEL 8 ISO.

Download ISO and go ahead with the install.

Do check out our article on RHEL 8 installation with screenshots.

New features in RHEL 8

Lets check out what’s new in RHEL 8

RHEL 8 is built with developers in mind! There is so much in the box for application developers.

  1. RHEL 8 comes with pre-enabled repository Application Stream (AppStream) which provides many developers tools.
  2. Its developer-friendly means fewer efforts needed for setup or configuration. A developer can start working on codes easily without wasting many efforts in setting up the environment for it.
  3. Easy to use for developers who are new to Linux
  4. It has all cloud/container application development tools.
  5. Linux containers included in the bag
  6. cockpit is available by default in RHEL repos. A cockpit is a web-based tool used by the sysadmin to manage systems.
  7. KDE environment is deprecated from RHEL 7.6 hence it’s removed in RHEL 8
  8. GNOME v3.28 is loaded with RHEL 8.
  9. With GNOME, RHEL 8 uses Wayland as default display server instead of X.org
  10. Startis is a new volume management tool introduced.
  11. XFS file system now supports shared copy on write data extents functionality
  12. LUKS2 encryption format (default) introduced which replaces legacy LUKS1 format.
  13. DNF is rolling out behind YUM
  14. RPM v4.14 is distributed in RHEL 8 which validates entire package contents before starting installation.
  15. iptables are replaced by nftables.
  16. OpenLDAP is no more available.
  17. It has composer included. It’s used to deploy custom images in the cloud.
  18. Few software versions available with RHEL 8 are Python 3.6, Nginx 1.14, Apache 2.4.35, PHP 7.2, Ruby 2.5, Perl 5.26,  Databases like MariaDB 10.3, MySQL 8.0, PostgreSQL 10, PostgreSQL 9.6, and Redis 4.0
  19. OS content is available through pre-enabled repository BaseOS
  20. Supports up to 4PB of physical memory.
  21. nobody user replaced by nfsnobody
  22. KVM supports 5 level paging, increasing physical and virtual address space used by host or guest.
  23. qemu-kvm 2.12 added which has many enhancement ones being hot vCPU plug-unplug
  24. and many more…

We have curated only a few features in the above list. You can always navigate to 8.0 release notes and read the detailed list of enhancements and features in RHEL 8!

Go ahead, grab your ISO copy of RHEL 8 and get your hands on this new sensation in Linux world.

How to connect Windows EC2 AWS server using RDP?

Quick post explaining how to connect Windows EC2 AWS server using RDP.

Connecting AWS Windows server using RDP

Step 1. Get windows password in AWS

Retrieve administrator password from the Windows EC2 server.  Login to the EC2 dashboard from the AWS console. Select your Windows server EC2 instance and choose ‘Get Windows password‘ from the Actions menu.

Get windows password in AWS

Sometimes you may see below error complaining that Windows password is not available –

Windows password not available in AWS

Error is self explanatory. You are seeing it because –

  1. You need to wait for your server to properly boot and module to start which decrypt windows password and share with you.
  2. You spun windows server from AMI which does not have a module which could retrieve administrator password from Windows.

In the case of the first situation wait for few minutes and again try to ‘Get Windows Password‘. In the case of the second situation, you need to spin up EC2 with proper AMI.

Also read : How to deploy Linux server in AWS

Once the above issue is resolved, you will see the next window which asks for key pair you used while deploying the Windows server. This is AWS authenticating you again before it releases administrator password to you.

Key pair required to get windows password in aws

Browse key pair on your local machine and then hit the ‘Decrypt Password‘ button. If you have supplied proper key pair you will be presented with a password window like below –

Windows password in aws

That’s it. You have the administrator password for your Windows server on AWS.

Step 2 : Login to Windows AWS server using RDP

Logged in to Windows AWS server

Open remote desktop connection on your local machine. Punch in details that are given to you by AWS in the above window. Public DNS is the hostname you should use to connect to the server followed by the user name and password.

And you are in !