2020/01/19(日)2020-01-19

おめざめ

1000 ごはんたべてまったり

CentOS6 to Centos7 upgrade

管理しているサーバがCentOS6で動いていてボチボチ7へupgradeしておくべきと思うので手順をまとめておこう。 upgrade出来るけどもはやこの手順はあまり勧められない。

rpmnewが無いことを確認

yumでupdateすると設定ファイルなどをrpmnewを拡張子の後に付けて保存する事がある。これが残ってない事を確認しよう。ミドルウェアのアップデートでちゃんとconfを編集してもバックアップとしてrpmnewを残している人も居るようだが移動しておくなり名前を変えておくなりする事が無難だ。

今回CentOS6からCentOS7にアップグレードする際にいくつかの設定ファイルがrpmnewとして残され、マージが必要になる。今回実施すべき設定修正か不要なものか判別が着くようにしておこう。

# find /etc | grep rpmnew$

upgradeレポジトリ登録

まずは /etc/yum.repos.d/ にrepoファイルを作成する。大抵のupgradeについて記載したサイトではdev.centos.orgになってると思うけど、もうそんなサーバは存在しない。

# cat > /etc/yum.repos.d/centos-upgrade.repo <<EOF
[centos-upgrade]
name=centos-upgrade
baseurl=https://buildlogs.centos.org/centos/6/upg/x86_64/
enabled=1
gpgcheck=0
EOF
# yum update

upgradeツールをインストール

まずはopenscapをインストールして、その後upgradeツールをインストールする。前後性は問わないがPGPのKeyも入れとこう。

# yum -y install https://buildlogs.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm
# yum -y install redhat-upgrade-tool preupgrade-assistant-*
#
# rpm --import http://mirror.centos.org/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

upgrade開始

preupgツールを回す。その後upgrade toolを回す。

# yes | preupg -v
# centos-upgrade-tool-cli --force --network=7 --instrepo=http://vault.centos.org/7.0.1406/os/x86_64/ --cleanup-post

((中略))

setting up update...
verify local files 100% [==============================================================================================]
testing upgrade transaction
rpm transaction 100% [=================================================================================================]
rpm install 100% [=====================================================================================================]
setting up system for upgrade
Finished. Reboot to start upgrade.
#
# reboot

再起動中にパッケージのアップデートが走り再起動して完了する。

consoleでログインし修正

一部soライブラリが失くなっておりサービスが起動に失敗する。しかもsshdサービスだったりするので、consoleで入り込んで修正。

# ln -s /lib64/libsasl2.so.3 /lib64/libsasl2.so.2
# ln -s /lib64/libpcre.so /lib64/libpcre.so.0

これで一通り基本的なパッケージについては完了。apacheやmysql等々動作確認はまだ取れてないので今後環境を合わせていって予行演習の精度を高めていこう。

うまく動かない

CentOS6を入れたあと超雑な手順だけれど本番サーバのrpmをひとしきり入れた状態で実施してみた。しかしその状態だとちゃんと回らなかった。うーむ。難しい。

# ssh {本番サーバ} rpm -qa | xargs yum install -y 

雑にもほどがあるけどrpmレベルではほぼ同一になるはず。