forum.ge
reklama
FORUM.GE წესები  · დახმარება  · ძებნა  · წევრები  · კალენდარი  · რჩეულები  · ჩატი
  გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

> Centos 7 -> 8 inplace upgrade
NorwayFun
Super Crazy Member


******
ჯგუფი: Members
წერილები: 5970
წევრი No.: 5801
რეგისტრ.: 26-July 04

გამოგზავნილია: 27 Oct 2019, 06:37  #55412115      · პროფილი · პირადი მიმოწერა · ჩატი
რადგანაც და რატომაც ძალიან არა მგონია, სადმე რამე ეწეროს ამის შესახებ, ინგლისურად დავწერ, რომ სხვებმაც გაიგონ.

Hello guys. Decided to share with you quite working and demanding procedure of inplace upgrade of RHEL/CentOS 7.6-7.7 system to 8.0.1.

As it is unsupported by any of our vendors, we're going on our risk.
Things to consider before upgrade:

1) Tt is unsupported by RH, neither by CentOS.
2) Take full backup/take snapshot of VM/BM
3) I made it to work with EPEL/REMI/NGINX/MariaDB repos, but I guess it will not work (as per official RHEL upgrade tool, leapp) with any 3rd party repos installed (It worked flawlessly after a bit of modifications, though)
4) use this manual at your risk.
5) there is no way back
6) have fun

Please, read full text carefully before asking questions or following procedure step-by-step:

0) take backup of EVERYTHING (/etc, etc)

1) Download full ISO
cd /tmp
curl http://mirror.centos.ge/8.0.1905/isos/x86_...4-1905-dvd1.iso -O
2) mount it somewhere
mount /tmp/CentOS-8-x86_64-1905-dvd1.iso /mnt
3) Copy all rpms at one location.
mkdir /media/1
cp /mnt/BaseOS/Packages/*rpm /media/1
cp /mnt/AppStream/Packages/*rpm /media/1

4) umount ISO
umount /mnt
5) ***WARNING, INVASIVE PART***
remove python-libs package from system through rpm.
if you're on 7.6, there are not many packages to remove, but it depends on your system/needs, I guess.
in my case command to remove "unneeded packages" was:
rpm -e python-libs python pyliblzma pygpgme pyxattr rpm-python policycoreutils-python systemd-python fail2ban-server yum tuned python-ndg_httpsclient python2-certbot python2-acme certbot yum-plugin-fastestmirror fail2ban-systemd fail2ban fail2ban-firewalld fail2ban-sendmail firewalld python2-josepy python2-future python2-parsedatetime systemd-sysv python-chardet python-linux-procfs python-urlgrabber libsemanage-python python-setuptools authconfig gettext python-schedutils grub2-pc grub2-tools-extra grub2-tools grub2-tools-minimal python2-cryptography python-requests python-requests-toolbelt grub2 newt-python yum-metadata-parser python-pycurl python-zope-interface python-cffi pyOpenSSL python2-psutil python-perf python-zope-component audit-libs-python python-firewall python-urllib3

you might need to specify additional package names/remove some package names from list. again, depends on system.

congratulations, you got system without python now (my long-time dream)

6) install grub, dnf, NetworkManager kernel etc.
Now interesting part. installation command for me (on 7.7) was this:

rpm -Uvh NetworkManager-1.14.0-14.el8.x86_64.rpm rpm-4.14.2-9.el8.x86_64.rpm dnf-4.0.9.2-5.el8.noarch.rpm grub2-common-2.02-66.el8.noarch.rpm grubby-8.40-34.el8.x86_64.rpm kernel-4.18.0-80.el8.x86_64.rpm kernel-core-4.18.0-80.el8.x86_64.rpm kernel-modules-4.18.0-80.el8.x86_64.rpm kernel-modules-extra-4.18.0-80.el8.x86_64.rpm rpm-libs-4.14.2-9.el8.x86_64.rpm rpm-build-libs-4.14.2-9.el8.x86_64.rpm lua-5.3.4-10.el8.x86_64.rpm lua-libs-5.3.4-10.el8.x86_64.rpm ncurses-6.1-7.20180224.el8.x86_64.rpm ncurses-libs-6.1-7.20180224.el8.x86_64.rpm ncurses-base-6.1-7.20180224.el8.noarch.rpm iprutils-2.4.16.1-2.el8.x86_64.rpm kernel-tools-4.18.0-80.el8.x86_64.rpm kernel-tools-libs-4.18.0-80.el8.x86_64.rpm parted-3.2-36.el8.x86_64.rpm openssh-7.8p1-4.el8.x86_64.rpm openssh-clients-7.8p1-4.el8.x86_64.rpm openssh-server-7.8p1-4.el8.x86_64.rpm libxcrypt-4.1.1-4.el8.x86_64.rpm crypto-policies-20181217-6.git9a35207.el8.noarch.rpm glibc-2.28-42.el8.1.x86_64.rpm glibc-common-2.28-42.el8.1.x86_64.rpm glibc-langpack-en-2.28-42.el8.1.x86_64.rpm hostname-3.20-6.el8.x86_64.rpm openssl-1.1.1-8.el8.x86_64.rpm openssl-libs-1.1.1-8.el8.x86_64.rpm open-vm-tools-10.3.0-2.el8.x86_64.rpm libtirpc-1.1.4-3.el8.x86_64.rpm krb5-libs-1.16.1-22.el8.x86_64.rpm libssh2-1.8.0-7.module_el8.0.0+44+94c1b039.1.x86_64.rpm libicu-60.2-7.el8.x86_64.rpm icu-60.2-7.el8.x86_64.rpm libstdc++-8.2.1-3.5.el8.x86_64.rpm wpa_supplicant-2.7-1.el8.x86_64.rpm NetworkManager-libnm-1.14.0-14.el8.x86_64.rpm glib2-2.56.4-1.el8.x86_64.rpm gnutls-3.6.5-2.el8.x86_64.rpm readline-7.0-10.el8.x86_64.rpm NetworkManager-tui-1.14.0-14.el8.x86_64.rpm NetworkManager-team-1.14.0-14.el8.x86_64.rpm libarchive-3.3.2-3.el8.x86_64.rpm python3-dnf-4.0.9.2-5.el8.noarch.rpm grub2-common-2.02-66.el8.noarch.rpm grub2-tools-2.02-66.el8.x86_64.rpm grub2-tools-minimal-2.02-66.el8.x86_64.rpm xz-5.2.4-3.el8.x86_64.rpm xz-libs-5.2.4-3.el8.x86_64.rpm ima-evm-utils-1.1-4.el8.x86_64.rpm sqlite-3.26.0-3.el8.x86_64.rpm sqlite-libs-3.26.0-3.el8.x86_64.rpm bc-1.07.1-5.el8.x86_64.rpm info-6.5-4.el8.x86_64.rpm libedit-3.1-23.20170329cvs.el8.x86_64.rpm less-530-1.el8.x86_64.rpm grep-3.1-6.el8.x86_64.rpm bash-4.4.19-7.el8.x86_64.rpm util-linux-2.32.1-8.el8.x86_64.rpm procps-ng-3.3.15-1.el8.x86_64.rpm xfsprogs-4.19.0-2.el8.x86_64.rpm platform-python-3.6.8-1.el8.0.1.x86_64.rpm platform-python-setuptools-39.2.0-4.el8.noarch.rpm platform-python-pip-9.0.3-13.el8.noarch.rpm python3-libs-3.6.8-1.el8.0.1.x86_64.rpm initscr1pts-10.00.1-1.el8.x86_64.rpm libmount-2.32.1-8.el8.x86_64.rpm libsmartcols-2.32.1-8.el8.x86_64.rpm libfdisk-2.32.1-8.el8.x86_64.rpm libblkid-2.32.1-8.el8.x86_64.rpm libuuid-2.32.1-8.el8.x86_64.rpm gettext-0.19.8.1-14.el8.x86_64.rpm gettext-libs-0.19.8.1-14.el8.x86_64.rpm python3-rpm-4.14.2-9.el8.x86_64.rpm python3-libdnf-0.22.5-4.el8.x86_64.rpm libmodulemd-2.0.0-5.el8.x86_64.rpm libmodulemd1-1.8.0-5.el8.x86_64.rpm python3-libcomps-0.1.8-13.el8.x86_64.rpm libcomps-0.1.8-13.el8.x86_64.rpm libyaml-0.1.7-5.el8.x86_64.rpm libdnf-0.22.5-4.el8.x86_64.rpm libsolv-0.6.35-6.el8.x86_64.rpm libunistring-0.9.9-3.el8.x86_64.rpm librepo-1.9.2-1.el8.x86_64.rpm json-c-0.13.1-0.2.el8.x86_64.rpm dnf-data-4.0.9.2-5.el8.noarch.rpm nettle-3.4.1-1.el8.x86_64.rpm libidn2-2.0.5-1.el8.x86_64.rpm libreport-filesystem-2.9.5-6.el8.x86_64.rpm libnsl-2.28-42.el8.1.x86_64.rpm cryptsetup-libs-2.0.6-1.el8.x86_64.rpm cryptsetup-2.0.6-1.el8.x86_64.rpm libnsl2-1.2.0-2.20180605git4a062cf.el8.x86_64.rpm gdbm-1.18-1.el8.x86_64.rpm gdbm-libs-1.18-1.el8.x86_64.rpm python3-iniparse-0.4-31.el8.noarch.rpm python3-hawkey-0.22.5-4.el8.x86_64.rpm python3-gpg-1.10.0-6.el8.0.1.x86_64.rpm gnupg2-2.2.9-1.el8.x86_64.rpm libusb-0.1.5-12.el8.x86_64.rpm libusbx-1.0.22-1.el8.x86_64.rpm python3-six-1.11.0-8.el8.noarch.rpm gpgme-1.10.0-6.el8.0.1.x86_64.rpm man-db-2.7.6.1-17.el8.x86_64.rpm libgpg-error-1.31-1.el8.x86_64.rpm libgcrypt-1.8.3-2.el8.x86_64.rpm sudo-1.8.25p1-4.el8.x86_64.rpm systemd-libs-239-13.el8.x86_64.rpm systemd-239-13.el8.x86_64.rpm libxslt-1.1.32-3.el8.x86_64.rpm systemd-udev-239-13.el8.x86_64.rpm systemd-pam-239-13.el8.x86_64.rpm pcre2-10.32-1.el8.x86_64.rpm dhcp-common-4.3.6-30.el8.noarch.rpm dhcp-libs-4.3.6-30.el8.x86_64.rpm dhcp-client-4.3.6-30.el8.x86_64.rpm grub2-pc-modules-2.02-66.el8.noarch.rpm ipcalc-0.2.4-3.el8.x86_64.rpm libksba-1.3.5-7.el8.x86_64.rpm pinentry-1.1.0-2.el8.x86_64.rpm libsecret-0.18.6-1.el8.x86_64.rpm bind-9.11.4-16.P2.el8.x86_64.rpm bind-license-9.11.4-16.P2.el8.noarch.rpm bind-chroot-9.11.4-16.P2.el8.x86_64.rpm bind-libs-9.11.4-16.P2.el8.x86_64.rpm bind-libs-lite-9.11.4-16.P2.el8.x86_64.rpm bind-utils-9.11.4-16.P2.el8.x86_64.rpm python3-bind-9.11.4-16.P2.el8.noarch.rpm bind-export-libs-9.11.4-16.P2.el8.x86_64.rpm python3-ply-3.9-7.el8.noarch.rpm npth-1.5-4.el8.x86_64.rpm fipscheck-1.5.0-4.el8.x86_64.rpm fipscheck-lib-1.5.0-4.el8.x86_64.rpm coreutils-8.30-6.el8.x86_64.rpm coreutils-common-8.30-6.el8.x86_64.rpm iputils-20180629-1.el8.x86_64.rpm centos-release-8.0-0.1905.0.9.el8.x86_64.rpm compat-openssl10-1.0.2o-3.el8.x86_64.rpm --oldpackage --nodeps

you might NOT need --oldpackage option on 7.6. but 7.7 has couple of packages, which are newer than ones, distributed with 8.0
but please, before specifying --nodeps and/or --oldpackage, take a close look on dependencies before ignoring them.


---- POST INSTALL TASKS -----

1) IF you got selinux on, do "touch /.autorelabel" . (be aware, that it will relabel all filesystems and if you didnt take care of SElinux policy/contexts being accessible after relabel, its a VERY good time to do it)
2) check if you got nm_controlled=no in ifcfg-* files and if yes, remove them. RHEL8 makes legacy network startup deprecated. also do not forget to enable NetworkManager service.
3) REBUILD RPM DB (DO NOT FORGET THIS PART)
rpm --rebuilddb
(rpm has been upgraded, so database needs to be upgraded too. else you will get stuck dnf all the time)

4) IF you're using mariadb/nginx repos, change "7" to "8" in /etc/yum.repos.d/*repo files:
(e.g. baseurl=http://nginx.org/packages/centos/8/$basearch/ for nginx)
5) update repo files for EPEL and REMI
rpm -e epel-release remi-release
dnf localinstall https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Let's also select correct php version...
dnf module reset php
dn module enable php:remi-7.2
6) IF you're using official mariadb repo and do not want to use RHEL/CentOS provided ones, please, add these two lines at the end of repo definitions at:
CentOS-AppStream.repo and CentOS-Base.repo
exclude=mariadb*
exclude=mysql*

Use this ONLY if you're using mariadb repo's.
7) try to do actual update..

dnf update

You will be presented quite a big (9 lines in my case) list, which is preventing system to be completely updated to version 8 we're aiming at.
(in my case I had to remove perl and perl-libs packages with --nodeps options, dnf installed them anyway. ivtv-firmware has to be removed too)
also, if you're using mariadb repo with nagios monitoring, you have to remove nagios-plugins-mysql package, since its not linked to correct libmysqlclient_r.so library.

After solving all problems (second one was gd-last and onuguruma5 packages from remi, which also were removed with --nodeps), wait for "dnf update " command to finish

8) regenerating grub config and reinstalling it (use your device, but almost all the time its /dev/sda)
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sda

9) IF you were using fail2ban before, install/enable it back, properly (I'm not using firewalld)
dnf install fail2ban fail2ban-systemd
systemctl mask firewalld
systemctl enable fail2ban

10) reboot

Welcome to RHEL/CentOS 8

P.S. its 3:30AM, so I'm pretty sure I missed more than I wrote here. Sorry about that. If there will be any interest, I'll be updating text eventually.

BR..

This post has been edited by NorwayFun on 27 Oct 2019, 10:26


--------------------
Remember children. With great power there comes great responsibility.
Distortion



******
ჯგუფი: Moderators
წერილები: 6778
წევრი No.: 21022
რეგისტრ.: 21-June 06

გამოგზავნილია: 27 Oct 2019, 14:11  #55412772      · პროფილი · პირადი მიმოწერა · ჩატი · im · icq · aim · yim · msn
NorwayFun
მეთქი პაროლი დაავიწყდა ექაუნთის smile.gif


--------------------
It's all about 0 and 1.
Roy
ტყლარჭია


*******
ჯგუფი: Members
წერილები: 10526
წევრი No.: 14675
რეგისტრ.: 19-November 05

გამოგზავნილია: 27 Oct 2019, 16:36  #55413248      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · aim
Distortion
ის ცოცხალია! givi.gif

დიდება მეფე ნარიმანს! lol.gif


--------------------
Whatever
NinjaRacer
we are all crazy here


*****
ჯგუფი: Members
წერილები: 2169
წევრი No.: 241880
რეგისტრ.: 2-April 18

გამოგზავნილია: 28 Oct 2019, 00:11  #55415157      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · ვებგვერდი
NorwayFun

up.gif

მადლობა smile.gif

kmod-kvdo არ მუშაობდა პირველკვირაში და ასევე netinstall-ზე repolist-ვერ მოქონდა. დავაკომპილირე მერე და ჩაიტვირთა მოდული მაგრამ მაინც არ მუშაობდა. გამოცდა მაქვს იქეთ თვეში ჩასაბარაბელი და მაგისთვის მჭირდებოდა.

ჰოდა. stratis, kvdo, streams და ა.შ კაი რაღაცეებია ზოგადად დამატებული.
kvdo განსაკუთრებით, იმიჯებისთვის და ლოგებისთვის არის მისწრება. 10-ჯერ ზრდის დისკის ზომას ზოგ შემთხვევებში.
რო დასტაბილურდება იმენა ფეშენი იქნება up.gif 1 თვეში ალბათ უკვე შეიძლება ამასთან თამაში fig.gif



--------------------
__signature__

:yawn:
NinjaRacer
we are all crazy here


*****
ჯგუფი: Members
წერილები: 2169
წევრი No.: 241880
რეგისტრ.: 2-April 18

გამოგზავნილია: 16 Nov 2019, 03:46  #55486511      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა · ვებგვერდი
სდრასტი. თემის მოტაცება შეიძლება? biggrin.gif
დღეს მივეცი 2.5 საათიანი გამოცდა

ცოოტა შემაშინა, თუ ვერ ჩავაბარე დავიგრუზები მაგრად. იყვნენ ტიპები ჩემს წინ იჯდნენ იმენა ფარხმალი რო დაყარეს. ძალიან რთულიაც არიყო. დამუღამება უნდა რა.
თუ ჩავაბარე და წავალ მაღლა rhcaმდე უკვე ვიცი რა ტიპის გამოცდაცაა. ოღონდ შესვენებებით ეგრევე არა. რთულდება მერე. თან ანსიბლზეა. რისი პრაკტიკაც 0 მაქვს თითქმის.

ანსიბლის წიგნი მაქვს და პირველ თავს ქვია conducting an orchestra
* * *
250 ქულა PASS
ერთი შეკითხვა იყო აუტოეფესზე რომელიც Aრ უნდა ყოფილიყო. გამოცდამდე 2 თვით ადრე ვიკითხე ობჯექტივებში არ წერია და ხო არ იქნება მეთქი. ვერ ვიტან მაგას და ყველამ ერთხმად არაო მეც დავიკიდე. ჰოდა ამიტომ 250 მაგ საკითხს გამოცდაზეც ხელი არ მოვკიდე საერთოდ.

This post has been edited by NinjaRacer on 16 Nov 2019, 03:57
1 წევრი ათვალიერებს ამ თემას (1 სტუმარი და 0 უჩინარი წევრი)
0 წევრი:
Topic Options გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

 



ფორუმის სერვერების განთავსებას და ინტერნეტთან კავშირს უზრუნველყოფს: CLOUD9
[ Script Execution time: 0.0180 ]   [ 11 queries used ]   [ GZIP Disabled ]