遂にCentOS 7.4がリリースされました。待ちに待ってたという訳でもないんだけど、チューナーやQSV関連のOS Specificな課題を解決して、いつでもOSを入れ替えられるようになった嬉しさと、ちょうどOS領域であるSSD128GBのsdaが8割を超えてしまい、256GBのSSDと換装しようとしていた時期でもあったので、この期に早速CentOS7.4をインストールしてみた。ただし、kernelについては現行のCentOS7.3でも使用しているkernel4.4を使い続けることになる。
CentOS7系はこれまでも7.1, 7.2, 7.3と全部使ってきたが、version upで困ることは特になかった。ちなみにうちの場合は、kickstartとchefで全てのコンポーネントが自動再構成できるようになっているので、厳密にはversion upではなく新OSを再インストールしている形となる。version upのタイミングでなくても、物理OSを汚し過ぎると再インストールしているので、そういった再構築は日常茶飯事。なるべく個々のミドルウェアはLXCによるコンテナ上で動かしてはいるんだけどね。
という訳で今回の再インストールもいつも通りkickstartで行う。CentOS7.4のリポジトリを先にローカルへコピーする。kickstartから参照するvmlinuzとinitrd.imgはCentOS7.4のリポジトリにあるものと差し替えておく。これ忘れると意外とはまるので注意。
mkdir /usr/share/nginx/html/7.4.1708
rsync -rptv --delete rsync://ftp.iij.ad.jp/pub/linux/centos/7.4.1708/os/x86_64/ /usr/share/nginx/html/7.4.1708/os
cp /usr/share/nginx/html/7.4.1708/os/isolinux/vmlinuz /var/lib/tftpboot/pxelinux.cfg
cp /usr/share/nginx/html/7.4.1708/os/isolinux/initrd.img /var/lib/tftpboot/pxelinux.cfg
変更したのはこれだけで、kickstartファイルは以前から使っているもののままで再インストールできた。OS的には特に違和感もなく再構築を進めていくが、最初に問題になったのがkeepalivedだった。CentOS7.4のbaseリポジトリにあるバージョン(1.3.5-1.el7)を使うと、どうしてもsegfaultが起きてしまう。segfaultの原因を調べるのは面倒なので、とりあえず7.3時点のバージョン(1.2.13-8.el7)に切り戻してみた。このdowngradeで通常の動作に戻すことが出来た。時間のあるときにまた調べてみよう。
次に問題になったのがsamba。これもCentOS7.4のbaseにあるバージョン(4.6.2-8.el7)を利用した。原因はよくわからないけど、sambaで開放している共有ディスクがwin10から参照できない。keepalivedの対応と同様にまずはdowngradeを試してみたが、こちらは解消せず。7.3時代の4.4.4-9.el7だと、プロセスが起動すらしなくなってしまった。仕方がないので真面目に原因を調べる。
win10だけの問題かどうかを切り分けるために、Linuxからも動作確認をしてみる。samba-clientパッケージに含まれているsbmclinentコマンドを使うと、Linuxからもsamba経由で共有ディスクにアクセスできる。以下のようなコマンドを試してみると、Linuxからは普通にアクセスすることができた。どうやらwin10からの認証のみがおかしいようだ。
yum install samba-client
smbclient '\\192.168.0.1\share' -U samba
:
Enter DOMAIN.COM\samba's password:
Domain=[FS] OS=[Windows 6.1] Server=[Samba 4.6.2]
smb: \>
改めてログを見直してみるが、sambaって大したログを吐いておらず、ちっとも原因がわからない。smb.confに『log level = 3』を指定すれば認証系のログも吐いてくれるらしく設定を追加する。そしてwin10からログイン失敗する場合とLinuxからログイン成功する場合のログを見比べる。まずはwin10の認証失敗ログから。
vi /var/log/samba/log.192.168.0.10
:
[2017/09/24 22:32:24.641245, 3] ../source3/passdb/lookup_sid.c:1680(get_primary_group_sid)
Forcing Primary Group to 'Domain Users' for samba
[2017/09/24 22:32:24.641336, 2] ../libcli/auth/ntlm_check.c:423(ntlm_password_check)
ntlm_password_check: NTLMv1 passwords NOT PERMITTED for user samba
続いて、Linuxの認証成功ログ。
vi /var/log/samba/log.192.168.0.2
:
[2017/09/24 22:41:41.836025, 3] ../source3/passdb/lookup_sid.c:1680(get_primary_group_sid)
Forcing Primary Group to 'Domain Users' for samba
[2017/09/24 22:41:41.845219, 3] ../source3/auth/auth.c:249(auth_check_ntlm_password)
check_ntlm_password: sam authentication for user [samba] succeeded
よくわからないけど、何となくNTLMv1での認証が怪しい。この辺りのメッセージでぐぐってみると、windowsからのアクセスにはNTLMv2の認証を許可してやる必要があるようだ。smb.confに『ntlm auth = yes』を追加してsambaを再起動すると、win10からも共有ディスクを参照できるようになった。CentOS7.3時代のsamba-4.4.4-9.el7では、こんな設定要らなかったんだけどね。
あとはchefも問題があって、knife-zeroが動作しなくなった。こちらはOSの問題とは関係なくて、 gem installする仕様上、再構築したタイミングでknife-zeroが最新化されてしまうため。既存のchefdkでは動作しなくなってしまったようなので、chefdkも最新化しておいた。すると、『WARN: Starting local-mode server in deprecated socket mode』というメッセージが表示されるようになった。うーん、いずれはknife-zero使えなくなるのかな。。。
以上、幾つか問題があったものの、全物理OSをCentOS7.4に差し替えることが出来た。これまで何のトラブルもなく再構築できていたので積極的に対応してきていたんだけど、久々にversion upでやぶをつついてしまった印象。次回のversion up悩むかもねえ。自宅サーバで録画処理を行っているから予約の合間の短時間で再構築しなきゃならず結構焦るし。今回の問題そのものは録画処理には影響ないものだったんだけど。クラウド側OSの最新化はまた今度かな。