RHEL
Red Hat Enterprise Linux
Releases:
https://access.redhat.com/articles/3078
Where to download old RHEL ISOs:
https://access.redhat.com/downloads/content/69/ver=/rhel---5/5.11/x86_64/product-software
How to install packages on RHEL5.11 using DVD ISO
- Note: there is no lsblk command in RHEL5. But you can run things like: ls -al /dev/disk/by-path;
Make sure the ISO is attached to the VM.
Tested on RHEL5.11:
mkdir /mnt/rhel5dvd mount /dev/sr0 /mnt/rhel5dvd # ensure the DVD Iso is connected to the VM vi /etc/yum.repos.d/dvd.repo [dvd-Server] mediaid=1409145026.642170 name=RHEL 5 Server DVD baseurl=file:///mnt/rhel5dvd/Server gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1
yum -y install kernel-devel
How to install gcc on RHEL6 using DVD ISO
Make sure the ISO is attached to the VM.
Tested on RHEL6.9:
mkdir /mnt/rhel6dvd mount /dev/sr0 /mnt/rhel6dvd # ensure the DVD Iso is connected to the VM vi /etc/yum.repos.d/dvd.repo [dvd-Server] mediaid=1409145026.642170 name=RHEL 6 Server DVD baseurl=file:///mnt/rhel6dvd/Server gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1 yum -y install gcc
How to install gcc on RHEL7.9 using DVD ISO
Tested on RHEL7.9:
- The baseurl is file:///mnt/rhel7dvd/ because the repodata directory is in /mnt/rhel7dvd/repodata
mkdir /mnt/rhel7dvd # ensure the DVD Iso is connected to the VM. Sometimes it will be attached as /dev/sr0 or sr1 mount /dev/sr0 /mnt/rhel7dvd mount /dev/sr1 /mnt/rhel7dvd vi /etc/yum.repos.d/dvd.repo [dvd-Server] mediaid=1409145026.642170 name=RHEL 7 Server DVD baseurl=file:///mnt/rhel7dvd/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1 yum -y install gcc wget
OR
sr1 mounted on /run/media/ardikass/RHEL-7.9 Server.x86_64
vi /etc/yum.repos.d/dvd.repo [dvd-Server] mediaid=1409145026.642170 name=RHEL 7 Server DVD baseurl=file:///run/media/ardikass/RHEL-7.9\ Server.x86_64/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1 yum -y install gcc wget
How to install packages on RHEL8 using ISO DVD
(for SLES15, its similar steps above except its more like:
vi /etc/zypp/repos.d/dvd.repo [dvd-Server] name=<some name> autorefresh=0 baseurl=file:///mnt/Module-Basesystem/x86_64/ type=plaindir enabled=1 gpgcheck=1
How to install python2.7 on RHEL5.5
Download the python package from Python website directly
wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
- If you can't wget/curl it from RHEL5/Centos5 due to TLSv1 issues. Copy it from another VM (i.e. RHEL7) like so:
# Copy files from remote host directory to local machine: scp root@192.168.122.200:/home/ardikass/Python-2.7.16.tgz ~/
Then compile it:
# tar xvzf Python-2.7.16.tgz # cd Python-* # ./configure --prefix=/opt/python2.7 --enable-shared # make install # ls -al /opt/python2.7 # export PATH=$PATH:/opt/python2.7/bin/ # python2.7 -V
If you get the following error:"python2.7: error while loading shared libraries: libpython2.7.so.1.0 cannot open shared object file: No such file or directory", then follow the proceeding commands:
# python2.7 -V python2.7: error while loading shared libraries: libpython2.7.so.1.0 cannot open shared object file: No such file or directory
- find libpython2.7.so.1.0 based on this: https://gist.github.com/dalegaspi/dec44117fa5e7597a559?permalink_comment_id=3887193#gistcomment-3887193
# find / -name "libpython2.7.so.1.0" /opt/python2.7/lib/libpython2.7.so.1.0 # echo "/opt/python2.7/lib" >> /etc/ld.so.conf # ldconfig
Now it should work, and continue:
# python2.7 -V Python 2.7.16
(optional)
# alias python=python2.7
python -V Python 2.7.16
Kickstart
HELPFUL LINKS:
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-howto
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax#sect-kickstart-commands
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-examples
- Kickstart commands: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/system_design_guide/kickstart-commands-and-options-reference_system-design-guide#bootloader-required_kickstart-commands-for-handling-storage
NOTE: DO NOT USE NOTEPAD++ OR VISUAL STUDIO CODE OR OTHER TEXT EDITORS WHEN EDITING A KICKSTART CONFIGURATION FILE!!!! ONLY USE VIM!!!!!
Anaconda-ks.cfg
Whenever you build out a RHEL server, there is a kickstart configuration file that automatically gets created. It is located in /root/anaconda-ks.cfg. You can use this kickstart configuration file to create other servers or you can use this as a basis template and make changes to it when building out other servers.
How to in RHEL7
1) Boot up RHEL7.9 ISO on UEFI in vcenter, install with GUI option. 2) Follow these steps to mount the dvd so we can install stuff: https://dikapedia.com/wiki/RHEL 3) ensure the DVD Iso is connected to the VM and install:
lsblk should show: sr1 mounted on /run/media/ardikass/RHEL-7.9 Server.x86_64
vi /etc/yum.repos.d/dvd.repo [dvd-Server] mediaid=1409145026.642170 name=RHEL 7 Server DVD baseurl=file:///run/media/ardikass/RHEL-7.9\ Server.x86_64/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1
yum -y install gcc system-config-kickstart vsftpd
4) Ensure the VM can reach other VMs on the network. If not able to ping another VM, check the route:
# ip route
If you see duplicate entries for the same route on two different interfaces, remove it (virb0):
RHEL7: # route -del -net 192.168.122.0 gw 0.0.0.0 netmask 255.255.255.0 dev virbr0
RHEL8: # route del -net 192.168.122.0 gw 0.0.0.0 netmask 255.255.255.0 dev virbr0
5) Add ftp to firewall: firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload
- allow ftp service in firewall (I needed this on rhel8)
firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload
- disable selinux, because it was also causing ftp (550) issues
vi /etc/selinux/config enforcing=disabled
4) Run the kickstart configuration app:
$ system-config-kickstart
5) Try to configure the kickstart based on customer's kickstart configuration.
6) Save the file as ks.cfg, and then move it to ftp server:
cp ks.cfg /var/ftp/pub/ks.cfg
systemctl start vsftpd
systemctl enable vsftpd
7) Launched a 'client' vm using same ISO:
- ensure storage size is large enough based on the kickstart configuration or else you would get "Failed to save storage configuration" into "No disks selected" . (20GB works) - Ensure you select BIOS (custom disk configuration saved successfully when it was set to BIOS) as boot option. - it seems on a fresh EFI VM, custom disk configuration saved successfully.
I found that on the BIOS system, the disk label is 'dos', and /boot/efi was on sda3, which is showing FAT16. HOWEVER, my boot * is on /boot, and not /boot/efi... hmmm.. SO BIOS is what you want to use to get the 'dos' disk label type.
I found that on the EFI system, the disk label is 'gpt', and /boot/efi was on sda1, which is showing EFI system.
Press 'tab' (if you booted the VM with BIOS) or 'e' (if you booted the VM with EFI) on the first install option. And then add this at the end of the kernel parameter line:
ks=ftp://192.168.122.200/pub/ks.cfg
How to in RHEL8
https://www.golinuxcloud.com/rhel-centos-8-kickstart-example-generator/
1) Boot up RHEL8 ISO on UEFI in vcenter, install with GUI option. 2) Follow these steps to mount the dvd so we can install stuff: https://dikapedia.com/wiki/RHEL 3) ensure the DVD Iso is connected to the VM and install:
lsblk should show: sr1 mounted on /run/media/ardikass/<rhel8 ISO dir>
vi /etc/yum.repos.d/dvd.repo [dvd-Server] mediaid=1409145026.642170 name=RHEL 7 Server DVD baseurl=file:///run/media/ardikass<rhel8 ISO dir> gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 gpgcheck=1
sudo dnf -y install gcc pykickstart vsftpd
- allow ftp service in firewall (I needed this on rhel8)
firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload
- disable selinux, because it was also causing ftp (550) issues
vi /etc/selinux/config enforcing=disabled
4) Ensure the VM can reach other VMs on the network. If not able to ping another VM, check the route:
# ip route
If you see duplicate entries for the same route on two different interfaces, remove it (virb0):
RHEL7: # route -del -net 192.168.122.0 gw 0.0.0.0 netmask 255.255.255.0 dev virbr0
RHEL8: # route del -net 192.168.122.0 gw 0.0.0.0 netmask 255.255.255.0 dev virbr0
4) (Not necessary) Run the kickstart configuration app
$ system-config-kickstart
5) Try to configure the kickstart based on customer's kickstart configuration.
I had to download it from my rhel7 server using sftp.
# sftp root@192.168.122.200 sftp> get /var/ftp/pub/ks.cfg
6) Save the file as ks.cfg, and make edits and then move it to ftp server:
cp ks.cfg /var/ftp/pub/ks.cfg
# replace the clearpart line with: clearpart --all --disklabel=msdos --drives=$ROOTDRIVE
systemctl start vsftpd
systemctl enable vsftpd
7) For some reason, when I try to fetch the file via FTP from RHEL8 VM, I get access denied 530 :(
To fix this: # vi /etc/vsftpd/vsftpd.conf anonymous_enable=YES
# systemctl restart vsftpd
How to fetch Kickstart configuration file upon ISO boot up
When you reach the grub menu, press E to edit the grub configuration.
Then at the end of the kernel parameter line, enter:
inst.ks=https://<url where you ks is>/kickstart.cfg
Then press ctrl+x to start it.
How to create a modified Red Hat Enterprise Linux ISO with kickstart file or modified installation media
https://access.redhat.com/solutions/60959
How to install Graphical User Interface (GUI)
https://access.redhat.com/solutions/5238
Install Gnome on RHEL8.8 Server
Run:
$ sudo yum group install GNOME base-x Fonts
After installing the appropriate packages, change the default systemd boot target to graphical.target. If you run into any errors, try updating the system first with 'yum update'.
# systemctl set-default graphical.target Removed /etc/systemd/system/default.target. Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target.
And then rebooted the system:
# reboot
RHEL Subscription
How to (unregister and) re-register a System
2. Launch a terminal 3. View current lifecycle -
# dzdo subscription-manager identity
4. Remove subscription and unregister
# dzdo subscription-manager remove --all # dzdo subscription-manager unregister # dzdo subscription-manager clean
5. Register to lifecycle (either PROD or QA matching output of #3)
# dzdo subscription-manager register --force --org="<organization>" --activationkey="<keyname>"
How to RDP into your RHEL Linux machine
This was tested on RHEL8.8
# yum install -y tigervnc-server xrdp # systemctl start xrdp # systemctl enable xrdp # firewall-cmd --permanent --add-port=3389/tcp # firewall-cmd --reload
And then Open up RDP on your client end and connect to it.
Google Chrome on RHEL8
/etc/opt/chrome/policies/managed/chrome.json
To enable/disable Developer Tools in Chrome, modify this line to true (disabled) or false (enabled):
"DeveloperToolsDisabled": false,
Shortcut:
sudo sed -i '/DeveloperToolsDisabled/ s/true/false/g' /etc/opt/chrome/policies/managed/chrome.json
Configure Secondary Interface on RHEL8 Workstation
In this scenario, we used a TPLink router for us to test as a separate subnet (192.x.x.x) on the secondary interface while the primary interface was connected to a different subnet.
This is how we set it up: 1. Connected the TPLink ethernet (USB) to the computer 2. Ran ip addr show. Can see the new interface is enp0s20f0u3 with MAC address: 00:24:9b:80:cb:8f 3. Then created the network configuration file:
dzdo cp /etc/sysconfig/network-scripts/ifcfg-enp0s31f6 /etc/sysconfig/network-scripts/ifcfg-enp0s20f0u3
dzdo chmod 644 /etc/sysconfig/network-scripts/ifcfg-enp0s20f0u3
dzdo vi /etc/sysconfig/network-scripts/ifcfg-enp0s20f0u3 TYPE=Ethernet DEVICE=enp0s20f0u3 NAME=enp0s20f0u3 ONBOOT=yes BOOTPROTO=dhcp DHCP_HOSTNAME=cacirh-st (likely not necessary) PROXY_METHOD=none (likely not necessary) BROWSER_ONLY=no (likely not necessary) DEFROUTE=no IPV4_FAILURE_FATAL=no NAME="System enp0s20f0u3" MAC=00:24:9b:80:cb:8f (Ensure the MAC address matches with the output in ip a) USERCTL=no NM_CONTROLLED=yes
dzdo systemctl restart NetworkManager
dzdo nmcli connection up enp0s20f0u3
(I can't remember if this ran successfully or not, but I ran reload in the next command and that worked
dzdo nmcli connection reload
4. Confirm it has IP address now by running: ip addr show 5. Confirmed we could ping the TPLink router: ping 192.16.0.1 6. Also confirmed we could reach the gateway via browser. 7. Confirmed we could reach a website via the primary interface (10.x.x.x): ping somewebsite.com 8. We checked the route table and confirmed the route for the secondary interface was there and it looked good:
route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.228.200.1 0.0.0.0 UG 100 0 0 enp0s31f6 10.118.200.0 0.0.0.0 255.255.248.0 U 100 0 0 enp0s31f6 192.168.0.0 0.0.0.0 255.255.X.0 U 100 0 0 enp0s20f0u3
References:
- https://medium.com/@gooygeek/configure-multiple-nics-and-ips-on-linux-an-automated-approach-3ab08ed0df0f
- https://dikapedia.com/wiki/Nmcli
- https://dikapedia.com/wiki/Networking_and_Routing
How to Configure 802.1Q VLAN Tagging in RHEL 8
How we did Vlan tagging with static IP when testing with Andrew's Hyper-V Vlan set up:
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/networking_guide/sec-configure_802_1q_vlan_tagging_using_the_command_line#sec-Setting_Up_802.1Q_VLAN_Tagging_Using_ifcfg_Files
- https://www.casbay.com/blog/tips-sharing/how-to-configure-802-1q-vlan-tagging
- dhcp + vlan tagging: https://serverfault.com/questions/829649/centos-7-tagged-vlan-dhcp-client
[+] The main interface (ifcfg-enp0s31f6)
# Generated by parse-kickstart TYPE=Ethernet DEVICE=enp0s31f6 UUID=92567071-7d48-44d5-b189-b9a2792c094f ONBOOT=yes #BOOTPROTO=dhcp BOOTPROTO=none #DHCP_HOSTNAME=cacirh-st IPV6INIT=yes IPV6_AUTOCONF=yes PROXY_METHOD=none BROWSER_ONLY=no DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME="System enp0s31f6"
[+] The VLAN <ID> interface (ifcfg-enp0s31f6.<id>)
DEVICE=enp0s31f6.<id> BOOTPROTO=none ONBOOT=yes NETWORK=192.168.x.0 IPADDR=192.168.x.254 PREFIX=24 VLAN=yes
[+] For DHCP on the VLAN <ID> interface:
DEVICE=enp0s31f6.<id> BOOTPROTO=dhcp ONBOOT=yes VLAN=yes
There is also a way to do VLAN tagging using nmcli, see: https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/configuring-vlan-tagging_configuring-and-managing-networking#configuring-vlan-tagging-by-using-nmcli_configuring-vlan-tagging