Christopher Juckins

SysAdmin Tips, Tricks and other Software Tools

User Tools

Site Tools


centos_7_migration_notes

CentOS 7 Migration Notes

RHEL5/6/7 Cheatsheet: rhel_5_6_7_cheatsheet_201410.pdf

Tuxcare's CentOS 7 Extended Support

14 Dec 2023 (for Dell XPS 8930 tower):

  • Updated kernel from kernel-3.10.0-1160.102.1.el7.x86_64 to kernel-3.10.0-1160.105.1.el7.x86_64
  • Attempted to rebooted machine but after the BIOS splash screen, only got a blank screen with blinking cursor in upper-left corner
  • Restarted machine using the power button but had same condition
  • Restarted once again but at the BIOS splash screen selected F12
  • For boot options, chose Boot from Hard Drive and list of kernels appeared
  • Chose latest kernel and machine was OK
  • After machine was running, did another restart and machine powered up with no issues

23 Oct 2023 (for Dell XPS 8930 tower)

  • Updated kernel from kernel-3.10.0-1160.99.1.el7.x86_64 to kernel-3.10.0-1160.102.1.el7.x86_64 and then machine would not boot, just blank screen with blinking cursor in upper-left corner
  • Powered off machine, unplugged the USB peripheral cables
  • Unplugged power cable for 30 seconds
  • Rebooted and used F12 to go into BIOS Boot Options
  • Tried to boot to Hard Drive but that immediately failed with error 'press any key to reboot'
  • After that, the machine booted up OK and the normal selection of kernels appeared

Other fixes:

  • Disable WiFi LAN connection with # nmcli radio wifi off

11 Oct 2020:

  • Keep getting errors in python3 script connecting/updating to mariadb server
    • OSError: [Errno 99] Cannot assign requested address
    • pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 99] Cannot assign requested address)")
  • Updated /etc/my.cnf.d/server.cnf with this setting under [mariadb-5.5]
max_connections = 818 (Note that 818 seems to be the absolute limit)
back_log = 1024 (Note that OS limit is in /proc/sys/net/ipv4/tcp_max_syn_backlog)
thread_cache_size = 818
thread_handling = pool-of-threads

Then do: systemctl restart mariadb.service

#!/usr/bin/python

import MySQLdb

# Open database connection
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# execute SQL query using execute() method.
cursor.execute("SELECT VERSION()")

# Fetch a single row using fetchone() method.
data = cursor.fetchone()
print "Database version : %s " % data

# disconnect from server
db.close()

16 May 2020:

  • System randomly reboots when KVM toggles back and forth from Dell XPS 8930 (running CentOS 7 as 'tidewater') and HP Pavilion P7-1240
    • Workaround: Use remmina to RDP to local Windows machine
  • Noticed monitoring emails not being sent from tidewater; postfix not running and won't start. mysql error.
  • yum reinstall <mysql_package> that was failing
  • postfix started
  • Other trouble…had to completely uninstall PHP
  • Reinstall PHP - that is v5.4
  • Then upgrade to REMI php v7.4
  • Look in the bash setup script to install the needed php files
  • Restore /etc/php.ini from a local VM
  • restart httpd service
  • yum update had many instances of 'empty files'….it fixed itself
  • ldconfig gave errors for 2 more things
    • yum reinstall oniguruma5
    • yum reinstall oniguruma
  • reboot system, came up cleanly
  • may need to check if mysql connection limit needs to be increased

13 December 2016:

  • VM machine #1 failed to boot into kernel-3.10.0-514.2.2.el7.x86_64
    • Yum had hung up when updating open-vm-tools and I did a CTRL-C (bad move)
    • Booting machine into previous kernel had no network connection; rebooting once again got network up
    • RPM database completely hosed; had to erase this VM and restore from backup
  • VM machine #2 was a clone of a test CentOS 7 VM (v7.2.1511) and it got stuck on trying to update open-vm-tools-10.0.5-2.el7.x86_64
    • cancelled by CTRL-C
    • had to install "yum-utils" and run yum-complete-transaction
    • yum then failed because transaction size changed
    • ran package-cleanup –dupes
    • ran package-cleanup –problems
    • ran package-cleanup –cleandupes
    • Still a mess, ran yum check and too many errors to fix
    • Erased VM
  • VM machine #3 was clone of test CentOS 7 VM (v7.2.1511)
    • tried to remove open-vm-tools - hung up so aborted attempt
  • VM machine #4 test was clone of test CentOS 7 VM (v7.2.1511)
    • yum update –exclude=open-vm-tools*
    • machine updated and booted into new kernel normally
    • ran yum -y update
      • stalled again
      • top -d 2 showed high CPU usage for process "vmware-checkvm"
      • did ps -ef |grep vmware
      • saw this process: root 3186 3182 97 17:08 pts/0 00:07:55 /usr/bin/vmware-checkvm
      • issued kill 3186 and the yum update completed
  • Primary machine updated OK
    • Virtual Box VMs would not start
    • Had to run as root /sbin/rcvboxdrv setup

5 June 2016:

  • Primary system migrated

18 May 2016:

  • Xfce Power Manager icon appeared in task bar
    • Might be a way to configure screen blanking

5 April 2016:

16 February 2016:

  • High CPU usage for vmtoolsd process
    • removed open-vm-tools-desktop
    • rebooted; open-vm-tools still remained but did not use high CPU

Restarting Services: http://www.putorius.net/2014/07/restarting-services-in-red-hat-7-or.html

For migrating a system from a different OS, take note of this info first:

  • Make a test user on CentOS6 and one on CentOS7
    • Compare hidden files to see if anything changed between OSs
  • ensure all scripts make their own log file directory
    • $log_dir = "/var/tmp/check_disk_space";
    • mkdir ("$log_dir", 0755);
    • should crons write to /tmp and then have a daily script that checks cron logs for errors?
  • users
  • MySQL / MariaDB Database and users
  • export MySQL databases with mysqldump
  • list of installed perl modules
    • grep all .pl script and look for the "use " calls
  • list of installed python (pip) modules
  • Copy the following to accessible location for restore after upgrade
    • users' $HOME
    • crons should be in each user's $HOME/crontab
    • various processing log files from /var/tmp/
    • /etc/ssh/*key* or possibly the entire directory contents (this may prevent man-in-the-middle attack messages but testing needed)
    • /etc/hosts
    • /etc/httpd/conf/httpd.conf
    • Samba users, passwords, shares (for security cameras)
      • /etc/samba/smb.conf
        • smbpasswd -a <username>
          • <password>
      • /var/lib/samba/private/passdb.tbd
      • /var/lib/samba/private/secrets.tbd
      • Make sure service is running and will start at boot.
      • Check output with: testparm -v
  • nxclient-3.5.0-7.x86_64.rpm
  • nxnode-3.5.0-9.x86_64.rpm
  • nxserver-3.5.0-11.x86_64.rpm
  • skype-4.3.0.37-fedora.i586.rpm
  • verify services that should be installed/running in chkconfig
  • Note firewall rules

Note these installed perl RPMs:

# rpm -qa –qf "%{NAME}\n" | grep -i perl | sort

ImageMagick-perl
perl
perl-autodie
perl-Array-Diff
perl-Array-Unique
perl-B-Lint
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Carp
perl-CGI
perl-Class-ISA
perl-common-sense
perl-Compress-Raw-Bzip2
perl-Compress-Raw-Zlib
perl-constant
perl-CPAN
perl-Data-Dumper
perl-DBD-MySQL
perl-DBI
perl-devel
perl-Digest
perl-Digest-MD5
perl-Digest-SHA
perl-Encode
perl-Encode-Locale
perl-Env
perl-Exporter
perl-ExtUtils-Install
perl-ExtUtils-MakeMaker
perl-ExtUtils-Manifest
perl-ExtUtils-ParseXS
perl-FCGI
perl-File-BaseDir
perl-File-CheckTree
perl-File-DesktopEntry
perl-File-Listing
perl-File-MimeInfo
perl-File-Path
perl-File-ReadBackwards
perl-File-Slurp
perl-File-Temp
perl-Filter
perl-Font-AFM
perl-GD
perl-Getopt-Long
perl-HTML-Element-Extended
perl-HTML-Format
perl-HTML-Parser
perl-HTML-TableExtract
perl-HTML-Tagset
perl-HTML-Tree
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-HTTP-Tiny
perl-IO-All
perl-IO-Compress
perl-IO-HTML
perl-IO-Socket-IP
perl-IO-Socket-SSL
perl-IPC-System-Simple
perl-JSON
perl-JSON-XS
perl-libs
perl-libwww-perl
perl-List-Compare
perl-List-MoreUtils
perl-Locale-Codes
perl-Locale-Maketext
perl-local-lib
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-macros
perl-Module-Pluggable
perl-Mozilla-CA
perl-Net-Daemon
perl-Net-HTTP
perl-Net-LibIDN
perl-Net-SSLeay
perl-Newt
perl-parent
perl-Parse-Yapp
perl-PathTools
perl-PlRPC
perl-Pod-Checker
perl-Pod-Escapes
perl-Pod-LaTeX
perl-podlators
perl-Pod-Parser
perl-Pod-Perldoc
perl-Pod-Plainer
perl-Pod-Simple
perl-Pod-Usage
perl-Scalar-List-Utils
perl-Socket
perl-Storable
perl-String-CRC32
perl-Sys-Syslog
perl-Test-Harness
perl-Test-Simple
perl-Text-ParseWords
perl-Text-Soundex
perl-Text-Unidecode
perl-Thread-Queue
perl-threads
perl-threads-shared
perl-TimeDate
perl-Time-HiRes
perl-Time-Local
perl-Types-Serialiser
perl-URI
perl-WWW-RobotRules
perl-XML-LibXML
perl-XML-NamespaceSupport
perl-XML-SAX
perl-XML-SAX-Base

Must-Have functionality:

  • Apache, MySQL, PHP, Perl
    • edit /etc/fail2ban/jail.local to ban for longer than default of 1 hour
    • Check logs: # cat /var/log/fail2ban.log
    • Ensure service is running:
      • # systemctl enable fail2ban
      • # systemctl restart fail2ban
  • Disable SELinux
  • VSFTP (for security cameras)
  • Samba
  • Skype
  • Virtual Box
  • Working crontabs for each user

Optional:

Contents of /etc/yum.repos.d (CentOS 7):

  • adobe-linux-x86_64.repo
  • CentOS-Base.repo
  • CentOS-CR.repo
  • CentOS-Debuginfo.repo
  • CentOS-fasttrack.repo
  • CentOS-Media.repo
  • CentOS-Sources.repo
  • CentOS-Vault.repo
  • epel.repo
  • epel-testing.repo
  • google-chrome.repo
  • nux-dextop.repo

For a continuation of GNOME2 in CentOS7, use "MATE"

Other info on MATE:

Customize MATE Desktop displays

  • Adjust System > Preferences > Look and Feel > Appearance
  • Under Fonts tab, set all to size 8
  • Click Details, set resolution to 96 dpi, Smoothing Grayscale, Hinting Slight, Subpixel order RGB
  • Firefox has large bullets for password masking. Theme setting?
  • Set up gnome-terminal preferences
    • General: Font Monospace 9, No terminal bell
    • Colors: Use colors from system theme
    • Scrolling: unlimited
    • Edit > Keyboard Shortcuts > Reset and Clear > F2
  • Disable Vim auto-indent following Vi and Vim Tips
  • Adjust System > Preferences > Personal > Startup Applications
    • Disable the SELinux Troubleshooter
    • Add PackageKit Update Applet
      • description: PackageKit Update Applet
      • command: gpk-update-viewer

Change setting on screensaver

  • System > Preferences > Look and Feel > Screensaver

System Monitor (needs mate-system-monitor and mate-applets RPMs):

  • Right-click top panel > Add to Panel
  • In the "Find an item to add to the panel:" search box, enter "System Monitor" and click Add
  • Moving display of current CPU usage should appear

Fresh VirtualBox Installation Notes 8 Nov 2015 (previous install 30 Sept 2014)

  • Preferable to use local .iso file to conserve bandwidth for multiple installs
  • On initial config screen, ensure the network connection is activated
  • You can also disable SELinux
  • Manually set mount points for /boot, /, swap
  • * Make sure /boot is 1024MB large
  • Let system create mount points automatically
    • After they are suggested, change from LVM to Standard Mount
    • May want to increase the boot and "efi" boot partitions from 500MB to 750MB and 200MB to 500MB
  • Used default "xfs" filesystem
  • For software packages, if you only choose something like Web Server you will not get graphical login
  • Choose a general desktop option, too
  • Boot into machine
  • Note the IP address

Use nmtui-hostname to change the system hostname

# nmcli general hostname
# nmcli general hostname new_server_name
# systemctl restart systemd-hostnamed

yum -y update, reboot, verify latest kernel is loaded by GRUB

Only keep 1 old kernel

Ensure gcc, make, kernel-devel are installed.

Install Virtual Box Guest Additions

  • Took 10 minutes to install

Reboot

Add 2nd hard drive to /etc/fstab following these notes

Prepare to run the local yum installer script

CPAN packages to install:

  • NOTE: Do not update .bashrc for library locations or else they will go into the wrong path
  • Array::Utils
    • Note, this module is not needed. Was used in ASMAD compare_stops.pl and compare_origin.pl
    • Start up cpan as root (initial time)
    • Run through the manual configuration process, accept the defaults
    • Start up cpan as root
    • > install CPAN (this updates the CPAN packages)
    • cpan Array::Utils
  • Time::Elapsed (cpan)
    • Note, this module is not needed. Was used in syncing to CDN.
    • As root, had to:
    • cd /root/.cpan/build/Time-Elapsed-0.31-N9mZvj/lib/Time
    • cp -rp * /usr/share/perl5/Time
    • Another option is to install modules locally
    • Yet another option is to use modules that are in a repository

Ensure Adobe Flash plugin is installed

Ensure Apache is installed and running

Upgrade PHP to version 7.2

Upgrade PHP to version 7.4

Migrate /etc/php.ini from old server and relax settings due to test env:

;max_execution_time = 30     
max_execution_time = 3600    
;max_input_time = 60
max_input_time = 3600
;memory_limit = 128M
memory_limit = 1024M
;display_errors = Off
display_errors = On
;post_max_size = 8M
post_max_size = 250M
;upload_max_filesize = 2M
upload_max_filesize = 250M
;date.timezone = 
date.timezone = "America/New_York"
;session.gc_maxlifetime = 1440
session.gc_maxlifetime = 7200
# systemctl restart httpd.service

Install and Secure MySQL (mariadb)

Database work:

  • Update /etc/my.cnf.d/server.cnf with this setting under [mariadb-5.5]
    • max_connections = 800
    • systemctl restart mariadb.service
  • Backup /etc/my.cnf
    • Add this line under [mysqld]
      • default-storage-engine=MyISAM
  • Add other database users with phpMyAdmin GUI
    • set username
    • set password
    • select "Grant all privileges on wildcard name (username\_%)."
  • Dump all databases from source server to sql file then import on target server
    • mysqldump -u USER -p'PASS' DATABASE > /tmp/DATABASE.sql
    • Ensure database on target server exists; create if necessary
    • mysql -u USER -p'PASSWORD' (to login to mysql at command line)
      • CREATE DATABASE database_name;
      • Now logout of command line
    • mysql DATABASE_NAME -h localhost -u USER -p'PASS' < /tmp/DATABASE.sql

Setup ddclient:

Setup duckdns:

  • crontab is
    ~/duckdns/duck.sh >/dev/null 2>&1

Setup ydns:

  • crontab is
    ~/ydns/updater.sh -V -u <snip> -p <snip> -H juckins.ydns.eu >>~/ydns/updater.log 2>&1

Firewall notes:

  • Using firewall-config to close rules from previous machine

rsync /var/www/html/

  • test pages for proper display
  • check soft link to phpmy is correct and current

Restore and test crons

  • check that each cron job runs and the specified log directory exists

Backup /etc/selinux/config and change from enforcing to permissive

Restore /etc/hosts from previous machine as needed

Disable virbro0 network connection if needed: http://www.cyberciti.biz/faq/linux-kvm-disable-virbr0-nat-interface/

# virsh net-destroy default
# virsh net-undefine default
# service libvirtd restart
# ifconfig 

Then, edit the network connections and make sure the "Ethernet" tab for the active connection, such as enp0s3, has the "Device" set to that interface. Reboot to test.

Download sample .png, .gif, .jpg images and test /usr/bin/display for any errors

Install Google Chrome

Install Google Chrome (Alt)

Fix Google Chrome fonts:

http://www.binarytides.com/gorgeous-looking-fonts-ubuntu-linux/

# yum install google*fonts
  • open Chrome, go to Settings > Advanced and set fonts as follows:
    • Standard font: Noto Serif
    • Serif font: Noto Serif
    • Sans-serif font: Noto Sans
    • Fixed-width font: Roboto Mono

Install Oracle Java (note, this is not the default CentOS, it will not auto-update)

Adobe Reader - use evince instead

Install NX/NoMachine v3

NX/NoMachine Troubleshooting:

  • Had v3 RPMs installed; removed and installed v4 to test. Failed. Removed v4 RPMs.
  • Upon reinstalling the 3 v3 RPMs, could not authenticate to target server.
  • Removed nxclient, nxnode, nxserver v3 RPMs again.
  • rm -rf /usr/NX completely
  • Reinstalled the 3 v3 RPMs. Authentication fixed
  • Start/stop server with the following:
    • /usr/NX/bin/nxserver –status
    • /usr/NX/bin/nxserver –stop
    • /usr/NX/bin/nxserver –start

NX for work VPN

  • Removed nxclient-3.5.0-7.x86_64.rpm, nxnode-3.5.0-9.x86_64.rpm, nxserver-3.5.0-11.x86_64.rpm
  • Installed opennx-0.16-724.el6.centos.1.x86_64.rpm
  • Tried connecting to remote machine as shadow session and it also failed; ensured the remote machine had a normal session established first using the same user

VPN connections

Percona toolkit: percona-toolkit-2.2.11-1.noarch.rpm

Restore Thunderbird profile

Restore Firefox profile

Restore VirtualBox and all machines

Test ASMAD for processing end-to-end

Install Skype rpm (skype-4.3.0.37-fedora.i586.rpm) following these steps:

yum install alsa-plugins-pulseaudio.i686 qt.i686 1:qt-x11.i686 libXScrnSaver.i686 libXv.i686
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum localinstall http://download.skype.com/linux/skype-4.3.0.37-fedora.i586.rpm

Skype Tips

SSH issues

  • Cannot ssh to yourself passwordlessly with default /etc/ssh/sshd_config
  • Comment out the following line, like this:
  • #AuthorizedKeysFile .ssh/authorized_keys
  • This allows you to NX into the CentOS7 machine
  • Update to openssh seems to require RSA keys now and authorized_keys file instead of DSA keys and authorized_keys2 file
  • Set "PermitRootLogin no"
  • But MATE does not work, tried KDE with yum group install "KDE Plasma Workspaces" and seems to work better but still no icons on the screen
  • But need to configure custom desktop to use /etc/X11/xinit/Xsession mate-session
  • Also tried /usr/bin/startxfce4 but still general odd behavior
  • systemctl restart sshd.service
  • User accounts at remove machines connecting to the new machine will need their $HOME/.ssh/known_hosts either rebuilt or offending entries removed

Update GRUB and splash screen

GRUB_CMDLINE_LINUX_DEFAULT="video=1024x768"
GRUB_GFXMODE=1024x768
GRUB_GFXPAYLOAD_LINUX=keep

Set default GRUB entry

If GRUB2 no longer finds other OS to boot (such as Windows 10) use SourceForge Boot Repair Disk

Install ClamAV

Set up local printer(s)

Firewall Notes

firewall-cmd --get-active-zones
  • It will say either public, dmz, or something else. You should only apply to the zones required.
  • If you want to add a port such as 8080 to your public zone:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • Then remember to reload the firewall for changes to take effect.
firewall-cmd --reload

Managing runlevel settings

  • Switch to runlevel 5:
# systemctl isolate graphical.target
  • Initiate runlevel 5 by default:
# systemctl set-default graphical.target
  • Switch to runlevel 3:
# systemctl isolate multi-user.target
  • Initiate runlevel 3 by default:
# systemctl set-default multi-user.target

USB HEADSET:

Plugin to right-side lower USB jack on HP Pavilion P7-1235, type dmesg at root prompt to see if it was found by system

[37013.137134] usb 8-1: New USB device found, idVendor=046d, idProduct=0a44
[37013.137145] usb 8-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[37013.137151] usb 8-1: Product: Logitech USB Headset
[37013.137160] usb 8-1: Manufacturer: Logitech
[37013.399267] input: Logitech Logitech USB Headset as /devices/pci0000:00/0000:00:10.1/usb8/8-1/8- 
1:1.3/input/input85
[37013.449648] hid-generic 0003:046D:0A44.004B: input,hidraw3: USB HID v1.00 Device [Logitech Logitech USB 
Headset] on usb-0000:00:10.1-1/input3

Right-click the speaker icon in the top panel and choose Sound Preferences. Or, navigate to System > Preferences > Hardware > Sound
Sound effects tab: Sound theme: No Sounds
Hardware tab: Highlight Headset H390, Profile: Analog Stereo Output + Analog Mono Input
Input tab: choose Headset H390 Analog Mono
Output tab: choose Headset H390 Analog Stereo, Connector is Headphones

Settings are saved to $HOME/.config/pulse

See Linux Mint Sound settings keep switching output against my will and possibly HDMI + Sound + Mint 18


OLD Notes and Issues

If on VirtualBox, go to main menu and choose "Insert Guest Additions CD Image…" and run the following commands:

mount -o ro /dev/disk/by-label/VBOXADDITIONS* /mnt
cd /mnt
./VBoxLinuxAdditions.run --nox11
shutdown -r now

Missing Desktop icons: https://www.centos.org/forums/viewtopic.php?f=48&t=47271

  1. Make sure caja is the default file manager in System –> Control Center –> Preferred Applications –>System tab.
  2. Add caja to automatically start in System–> Control Center –> Startup Applications.
  3. Reboot.

Tried /usr/bin/display with a .jpg or .png file, but this error results:

[juckins@centos7-test-64: /tmp/splash]$ display default.png 
display: color is not known to server `FOREGROUND': 
No such file or directory @ error/xwindow.c/XGetPixelPacket/3064.

ImageMagick may be a different version.

UPDATE: Does work after installing Skype and its dependencies below (nux-desktop?)

Comment out the GRUB_TERMINAL_OUTPUT line in /etc/default/grub using a # at the start of the line, and grub should use a graphics mode again

First see if the default kernel is the latest one for boot. If not, add the following line to /etc/default/grub

GRUB_DEFAULT=0

Also remove the "rhgb quiet" flags. Get the splash.png from http://juckins.net/dokuwiki/lib/exe/fetch.php?media=splash.png and put into /boot/grub2/

GRUB_BACKGROUND="/boot/grub2/splash.png"

Then run:

grub2-mkconfig -o /boot/grub2/grub.cfg

Notes on grub splash screen:

centos_7_migration_notes.txt · Last modified: 2023/12/14 10:10 by juckins