はじめに
界隈がAdvent callenderで沸く中とある取引と引き換えに記事を書くことになった。(なお取引は不成立)
だがネタがなさすぎるので今回は「Centos6や7からAlmaLinux9にいきなり飛ぶ」という非常にニッチな層にむけた記事を書こうと思う。
とはいえCentOSのサポート終了後なんとなく後継OSが決まらずずるずる来ていて焦っている層は一定数いるはず。
もしこの記事を見てひとりでも「AlmaLinux9いってみるかー」となってもらえたら幸い。
なお本記事では初見でAlmaLinux9をいれて不自由なく通信ができる状態を目指して記載する。
また諸事情によりコンソールが使用できる環境を想定している。
(EC2用は別の記事にする予定)
インストール
媒体にもよるが多少リッチになったくらいで特筆すべき変更は無し。
起動したらやること
sshに設定を追加する
/etc/ssh/sshd_configに以下の設定を入れる。
これをいれないと他のCentOS6以下のサーバと通信できない。
インストールして「いざ踏み台からssh!」となったときにハマるやつ。
この設定はセキュリティを下げるので本来入れるべきではない。
が、実務として入れないはまず無理な環境のほうが多いはず。
こういうの頑張ると一行に導入がすすまなくなるので必要悪として入れる。
最終的には入れなくてよくなるといいよね(遠い目)
update-crypto-policies --set DEFAULT:SHA1
echo "PubkeyAcceptedAlgorithms=+ssh-rsa" >> /etc/ssh/sshd_config
selinuxを止めろ!
RHEL9ではselinuxのdisabledが無効化されたらしいがAlmalinux9ではいままでと同じ手順でdisableできる。
とりあえず止めておこう。用途に沿ってちゃんとするかはあとでいい。
sed -i "s/=enforcing/=disabled/" /etc/selinux/config
firewalldを止めろ!
皆様ご存じのとおりCentos7からfirewalldが導入されておりこいつが片っ端から通信を落としてくれる。
AlmaLinux9からiptablesが消えてnftablesに代わっているのでそっちを意識しているとハマりがち。
とりあえず意識して落とす、最終的にfirewalldを使うのかnftablesを使うのかはたまた両方使うのかは後で決めればいい。
なおchkconfigコマンドがなくなっているのでサービスのdisable/enableはsystemctlコマンドを使う事。
ちなみにserviceコマンドは残っているのでstop/startはそのまま使ってもいいお好みで。
systemctl disable firewalld
再起動
設定をすべて反映する為再起動する。
(shutdownコマンドはちゃんと残っている)
shutdown -r now
あとは不自由なく使えるようになっているはず。
ちなみにこの環境はあくまで触り始めるための仮の環境であり本番運用に持ち込む際は各々セキュリティを落とすべきところに落としたうえで運用を開始すること!
質疑応答編
yumコマンドないんでしょ?
ある。serviceコマンドと一緒でdnfコマンドにリダイレクトしてくれるのでyum使って大丈夫。
なれてきたら自然とdnfを使うようになるきっと。
あと正直新しくなったコマンドはいちいち勉強して覚える必要はないと個人的に思っている。
少なくとも私たちインフラを触る人間は新しいOSを導入してもCentOS6(場合によっては5とか4も)を触る機会は極端に減らないので。
netstatないんだが
ある。「net-tools」をyumで入れれば実は使える
ただssコマンドはnetstatとオプション基本同じなので使ってみては。
/etc/network-scripts配下なにもない・・・。
nmcliかnmtuiを使うことになった
どちらにせよconfigファイル作成してくれるわけでもないのでnmtuiのGUIでいいんじゃないだろうか。
(個人的にあまりいい方向の変更だとは思っていない)
なんかよくわかんないけどCentosからAlmaLinuxって互換性が心配
本記事を見に来る層でこの質問をしてくる諸兄はいないと思うが一応書いておく。
私はRHELクローン同士の同一性について言及できる立場にはない。
ただ少なくとも私はmemcachedの置き換えは成功させたことがある。
(Centos6:memcached-1.4.22 → AlmaLinux9:memcached-1.6.9)
Tips
/etc/sysconfigにファイルはおくな!
いやおいてもいいのだが。
Centos7からサービス管理がsystemctlに変わったがAlmaLinux9でまた変更が加わっている。
/etc/sysconfig/XXXXXXに書いてある変数を読んでくれなくなった。
↓こんなやつ
# Dro root to id 'ntp:ntp' by default
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
詳細は確認予定だが「OPTIONS」という変数をちゃんと読んでくれないように見えている。
(おそらく歴史的経緯があるのだろうが正直そのあたり詳しくない。私/etc/sysconfigつかわない派なので)
ちなみにこの状態でサービスを起動するとプロセス上はコマンドラインオプションが指定されているのに実際は効いていない状態となる。
非常に悪質かつハマり所なので注意されたし。
(刺さる人少なそうだけど)
あとがき
以前現場でCentos6をAlmaLinux9にしていくというプロジェクトがあり何件か対応したことがあるので記事にまとめた。
元々Centos8を触っていたのもありたかをくくっていたが、やはりメジャーバージョンを3つも飛び越えるとなるとなんだかんだちょくちょくハマる。(大体AlmaLinuxのせいではないが)
少なくとも今回記載した内容を参考にしてもらえればOSの違いに困ることはないはず。
そこから各rpmや動作の違いなど探してもらえればと思う。
冒頭にも書いたが本記事で一人でもAlmaLinux9を触ろうと思ってもらえれば幸い。
なお、今回はコンソールが使える環境(オンプレ)で書いたがEC2になるとまた勝手が違う。
これはまた別途記事にする予定。(予定は未定)