Install MariaDB 5.5 in RHEL 6

Learn how to install MariaDB 5.5 in RHEL 6 along with how to secure it and how to connect MariaDB from shell prompt.

MariaDB 5.5. installation

MariaDB is a MySQL based database management system. It is one of the components of the famous LAMP stack. In this article, we will walk you through how to install MariaDB, how to secure MariaDB installation, and how to connect MariaDB from shell prompt.

Without any further delay lets jump in to mariadb installation.

Create repo for downloading MariaDB packages

Mostly, package managers don’t come with MariaDB packages listed in RHEL 6 or lower. So, you have to add below the repo file on your server so that you can download and install the MariaDB server using yum.

root@kerneltalks # cat /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/rhel6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Install MariaDB

Now install MariaDB packages MariaDB-server and MariaDB-client

root@kerneltalks # yum install MariaDB-server MariaDB-client

Start MariaDB server proces

Run below commands to start MariaDB with the boot. chkconfig manages processes at boot so use it here.

root@kerneltalks # chkconfig --add mysql
root@kerneltalks # chkconfig --level 345 mysql on
root@kerneltalks # chkconfig |grep mysql
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Now, start MariaDB server process

root@kerneltalks # service mysql start
Starting MariaDB.190110 07:15:32 mysqld_safe Logging to 'https://z5.kerneltalks.com/var/lib/mysql/kerneltalks.test.err'.
190110 07:15:32 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
.                                                          [  OK  ]

See the brief article about how to start, stop & restart MariaDB server process in Linux

Secure MariaDB installation

Use the below command to secure your MariaDB installation. Answer queries asked according to your requirement.

root@kerneltalks # mysql_secure_installation
/usr/bin/mysql_secure_installation: line 393: find_mysql_client: command not found

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] y
 ... Success!

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!

Test MariaDB server connection

Test connection to MariaDB server using below command and root account.

root@kerneltalks # mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.62-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.62-MariaDB |
+----------------+
1 row in set (0.00 sec)

MariaDB [(none)]>

How to start, stop & restart MariaDB server in Linux

Learn how to start, stop & restart the MariaDB server in Linux. Also, know how to check the MariaDB server status.

Managing MariaDB server process

MariaDB is a MySQL database management system and popular nowadays.
It is one of the pillars of the LAMP stack popular among developers. In this article, we will walk you through steps to manage the MariaDB server process from the command line shell prompt.

In newer systems like RHEL 7, Debian 8, Ubuntu 15.04, Suse 12 and later system V init daemon is replaced by systemd. We will see both systemd and system V init commands to manage the MariaDB server process. Be noted that we are dealing with the MariaDB server process only. You have to take care of the databases you build within for their graceful shutdown and startup.

How to start MariaDB server

On newer systems with systemd

# systemctl start mariadb

On older systems with system V init

# service mysql start
Starting MariaDB.190110 07:15:32 mysqld_safe Logging to 'https://z5.kerneltalks.com/var/lib/mysql/kerneltalks.test.err'.
190110 07:15:32 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
.                                                          [  OK  ]

How to start MariaDB server at boot

On newer systems with systemd

# systemctl enable mariadb
ln -s 'https://z5.kerneltalks.com/usr/lib/systemd/system/mariadb.service' 'https://z5.kerneltalks.com/etc/systemd/system/multi-user.target.wants/mariadb.service'

On older systems with system V init

Systems like RHEL, CentOS, SUSE uses chkconfig to manage processes at boot.

# chkconfig --add mysql
# chkconfig --level 345 mysql on

Systems like Debian, ubuntu uses update-rc.d

# update-rc.d mysql defaults

How to stop MariaDB server

On newer systems with systemd

# systemctl stop mariadb

On older systems with system V init

# service mysql stop
Shutting down MariaDB.                                     [  OK  ]

How to check MariaDB server status

On newer systems with systemd

# systemctl status mariadb
mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
   Active: active (running) since Thu 2019-01-10 02:32:04 EST; 1min 35s ago
 Main PID: 10853 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─10853 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─11015 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-fi...

Jan 10 02:32:00 ip-172-31-89-93.ec2.internal mariadb-prepare-db-dir[10775]: MySQL manual for more instructions.
Jan 10 02:32:00 ip-172-31-89-93.ec2.internal mariadb-prepare-db-dir[10775]: Please report any problems at http://mariadb.org/jira
Jan 10 02:32:00 ip-172-31-89-93.ec2.internal mariadb-prepare-db-dir[10775]: The latest information about MariaDB is available at http://mariadb.org/.
Jan 10 02:32:00 ip-172-31-89-93.ec2.internal mariadb-prepare-db-dir[10775]: You can find additional information about the MySQL part at:
Jan 10 02:32:00 ip-172-31-89-93.ec2.internal mariadb-prepare-db-dir[10775]: http://dev.mysql.com
Jan 10 02:32:00 ip-172-31-89-93.ec2.internal mariadb-prepare-db-dir[10775]: Consider joining MariaDB's strong and vibrant community:
Jan 10 02:32:00 ip-172-31-89-93.ec2.internal mariadb-prepare-db-dir[10775]: https://mariadb.org/get-involved/
Jan 10 02:32:01 ip-172-31-89-93.ec2.internal mysqld_safe[10853]: 190110 02:32:01 mysqld_safe Logging to 'https://z5.kerneltalks.com/var/log/mariadb/mariadb.log'.
Jan 10 02:32:01 ip-172-31-89-93.ec2.internal mysqld_safe[10853]: 190110 02:32:01 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Jan 10 02:32:04 ip-172-31-89-93.ec2.internal systemd[1]: Started MariaDB database server.

On older systems with system V init

# service mysql status
MariaDB running (2122)                                     [  OK  ]

How to restart MariaDB server process

On newer systems with systemd

root@kerneltalks # systemctl restart mariadb

On older systems with system V init

root@kerneltalks # service mysql restart
Shutting down MariaDB....                                  [  OK  ]
Starting MariaDB.190110 07:35:01 mysqld_safe Logging to 'https://z5.kerneltalks.com/var/lib/mysql/ip-172-31-90-145.ec2.internal.err'.
190110 07:35:01 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
.                                                          [  OK  ]

Understanding /etc/services file in Linux

The article helps you to understand /etc/services file in Linux. Learn about content, format & importance of this file.

/etc/services file in Linux

Internet daemon is an important service in the Linux world. It takes care of all network services with the help of /etc/services file. In this article, we will walk you through the content, format of this file, and what it means to a Linux system.

/etc/services file contains a list of network services and ports mapped to them. inetd or xinetd looks at these details so that it can call a particular program when a packet hits respective port and demand for service.

As a normal user, you can view this file since the file is world-readable. To edit this file you need to have root privileges.

$ ll /etc/services
-rw-r--r--. 1 root root 670293 Jun  7  2013 /etc/services

/etc/services file format

service-name    port/protocol   [aliases..]  [#comment]

Last two fields are optional hence denoted in [ ] where –

  • service-name is the name of the network service. e.g. telnet, FTP, etc.
  • port/protocol is the port being used by that network service (numerical value) and protocol (TCP/UDP) used for communication by service.
  • alias is an alternate name for service.
  • a comment is a note or description you can add to service. Starts with # mark

Sample /etc/services file

# Each line describes one service, and is of the form:
#
# service-name  port/protocol  [aliases ...]   [# comment]

tcpmux          1/tcp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
echo            7/udp
discard         9/udp           sink null

Here, you can see the use of optional last two fields as well. discard service has an alternate name as sink or null.

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!