前書き
こんにちわ。ラクスのインフラ開発部に所属しておりますもしにしです。
本日で30歳になり、おっさんズの仲間入りをしました。
弊社では恒例になりつつあるAdventCalendar。
なぜか毎年誕生日に投稿させていただける雰囲気に…去年が悪かった…
いや、嫌な訳ではないんですよ。他にも書きたい人いるかなーと思って。
自分よりも前に書いている人たちを見ると良記事ばかりなので、こんな投稿でごめんなさい。
と思いながらもこれから投稿する後輩のためにも敷居を下げてやんわり投稿できるようにしていこうと思います!
Centos8 を触ってみた。
夏?ごろにCentos8がリリースされたのでひとまず触ってみることにした。
とりあえずCentos7との違いを見ていく。といってもさわり程度なので期待しないでください。
結論、Centos7とそんなにかわらん。
Centos6から7に上がったときはがっつり変わったので恐る恐る触ってみたが、Centos7から8はそんなに変わっていない印象。
結局ハマるところはMWの部分なんだろうなぁ~という感想です。…( ノД`)ノ
Centos6からは、がっつり変わっているからまぁ大変。
CentOS8リリース!
リリース日は2019年9月24日
EOLは発表されているところでいうと2029年05月??日
Centos8の新しいところ
- yum が dnf に変更
- firewalld(iptables) から nftablesへ
- いろんなOS標準MWのバージョンがあがった (そらそーだ)
- etc…
Centos8で削除された機能
- ntp がなくなった(代わりにchrony)
- tomcatがなくなった
- etc…
yum が dnf に変更
Centosのパッケージ管理でよく使うのがyum。
それがFedoraなどで採用されているdnf
に代わるとのこと。
オプションとかは変わりないらしい。
yumはpython2系だけどdnfはpython3系
というか YUM v4 = dnf
使った感じ、yumコマンドも叩けるので使用感としてはあまり変わらない。
confファイルは/etc/yum.conf
が/etc/dnf/dnf.conf
にリンクが張られている。
# ls -l /etc/yum.conf /etc/dnf/dnf.conf
-rw-r--r--. 1 root root 82 5月 14 2019 /etc/dnf/dnf.conf
lrwxrwxrwx. 1 root root 12 5月 14 2019 /etc/yum.conf -> dnf/dnf.conf
リポジトリは、/etc/yum.repo.d/*.repo
をみるとのこと。
dnfじゃないんや…
dnfでリポジトリを操作するコマンド
リポジトリ一覧
# dnf repolist
repo id repo の名前 状態
AppStream CentOS-8 - AppStream 5,089
BaseOS CentOS-8 - Base 2,843
extras CentOS-8 - Extras 3
リポジトリ一覧の無効化
# dnf config-manager --set-disabled BaseOS
# dnf repolist
repo id repo の名前 状態
AppStream CentOS-8 - AppStream 5,089
extras CentOS-8 - Extras 3
リポジトリ一覧の有効化
# dnf config-manager --set-enabled BaseOS
# dnf repolist
repo id repo の名前 状態
AppStream CentOS-8 - AppStream 5,089
BaseOS CentOS-8 - Base 2,843 # ←復活!
extras CentOS-8 - Extras 3
リポジトリの追加
# dnf config-manager --add-repo [リポジトリ名]
これで、できるらしいが、いい例が思いつかなかったので省略。
そもそも普通に
# dnf -y install epel-release
# dnf config-manager --set-enabled epel
# dnf repolist
repo id repo の名前 状態
AppStream CentOS-8 - AppStream 5,089
BaseOS CentOS-8 - Base 2,843
*epel Extra Packages for Enterprise Linux 8 - x86_64 3,535 # ←追加!!
extras CentOS-8 - Extras 3
でいい気がしてる。
dnf config-manager --add-repo [リポジトリ名]
これを使うと一撃でリポジトリが有効になる…?よくわらかん。
firewalld(iptables) から nftablesへ
nftables のことを書き始めるとくそ長くなるので参考したURLを見てください。
Centos7からfirewalldが実装されており、Centos8ではnftablesになった。
世間ではiptablesが徐々に移行されつつあるので、iptablesを脱却していかないとなぁ…
とは思いつつ、iptablesが使えるうちは使いたい…
ちなみにCentos8でもiptables.services
をインストールすればiptablesが使える。そして多分使う。
せっかくなのでざっくりnftablesの使い方について書いてみようかと思ったけど、
この記事がわかりやすいのでこっちを見たほうがいいと思う。
いろんなOS標準MWのバージョンがあがった
参考程度ですが、メジャーなMWのバージョン情報を上げておきます。
MW | CentOS 7 | CentOS 8 |
---|---|---|
Linux Kernel | 3.1 | 4.18 |
PHP | 5.4 | 7.2 |
Python | 2.7 | 3.6 |
Perl | 5.16 | 5.26 |
Ruby | 2 | 2.5 |
Node.JS | 6.16 | 10.14 |
MariaDB | 5.5 | 10.3 |
MySQL | 5.5 | 8 |
PostgreSQL | 9.2 | 10 |
Redis | 3.2 | 5 |
git | 1.8 | 2.18 |
gcc | 4.8 | 8.5 |
nginx | 1.12 | 1.14 |
httpd | 2.4.6 | 2.4.37 |
bash | 4.2 | 4.4 |
tomcat | 7 | なくなった |
pacemaker | 1.1.20 | まだない |
corosync | 2.4.3 | まだない |
ansible | 2.4.2 | 2.8.5 |
docker | 1.13.1 | ※※※ |
・PHPが7.2へ
Wordpressがphp5.6以上じゃないと動かなくなったのでCentos7でWordpressを動かそうと思ったらphpをコンパイルして入れなおさないといけなかった。(それかremiリポジトリ使うか野良のリポジトリ使うか…)
OS標準のPHPが7.2になったことでコンパイルする手間が省けたのがうれしい…‼
そのうち7.2でもwordpressが動かなくなるんだろうなぁ…
・pythonが3系に
地味にpython3系を勉強中で、python2系と3系で記述方法が違うらしい。
実機で使おうと思うとpython3系を入れて実行するときのパスに気を付けないといけなかったのが
きっと大丈夫なった。地味にうれしい。(って言ってもpythonまだよくわからん。)
ansibleがpythonで動いているので、2系から3系に上がったことで微妙に挙動が変わる可能性があるので注意。
・pacemakerとcorosyncがOS標準のリポジトリにない…
Centos8ではHAクラスタを組むための定番であるpacemaker/corosyncといったものがOS標準のリポジトリにない。
調べたところ、リリースが間に合っていないらしいとのことでした。
そのうちリリースされるような噂を耳にしたので出るまで待ちか、
今すぐインストールしたい人は自分でコンパイルするか、この辺から必要なパッケージをインストールする必要があるっぽい。
動くかどうかは不明。
docker
Centos8でdockerをインストールすると
# dnf install docker
========================================================================================================
パッケージ アーキテクチャー
バージョン リポジトリ サイズ
========================================================================================================
Installing:
podman-docker noarch 1.0.5-1.gitf604175.module_el8.0.0+194+ac560166 AppStream 28 k
トランザクションの概要
========================================================================================================
ぬぬっ!podman-docker ってなんやねん。
dockerと似たようなコンテナエンジンらしいけど、dockerのこともそこまで詳しくないので次の投稿までに調べておきます。(次の投稿は未定。)
podmanエンジンでもdockerイメージが動けば問題ない気がするけど、どうなんだろう。互換性はあるってどっかで見た気がする。
気が向いたら試してみます。
Centos8でモノホンのdocker入れようと思うとちょっと手間がかかりそう。
自分用のメモとしてさらっとインストール方法だけ残しておく
Dockerリポジトリの追加
# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
repo の追加: https://download.docker.com/linux/centos/docker-ce.repo
いつ使えるかわからんかったdnf config-manager --add-repo
が早速使えた!!
リポジトリの確認
# dnf repolist
Docker CE Stable - x86_64 19 kB/s | 21 kB 00:01
repo id repo の名前 状態
AppStream CentOS-8 - AppStream 5,089
BaseOS CentOS-8 - Base 2,843
docker-ce-stable Docker CE Stable - x86_64 57
*epel Extra Packages for Enterprise Linux 8 - x86_64 3,544
extras CentOS-8 - Extras 3
さてインストール
# dnf install docker-ce
エラー:
問題: package docker-ce-3:19.03.5-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
見事にエラー。どうしよう。
containerd.ioの1.2.2-3が欲しいと怒られているっぽいのでcontainerd.ioのバージョンを確認
# dnf list installd containerd.io
containerd.io.x86_64 1.2.0-3.el7 docker-ce-stable
おぉ、確かに違う。どうしよう。
--nobest
このオプションを付ければ行けるっぽいけど、Set best option to False, so that transactions are not limited to best candidates only.
ベストじゃなくなるでって言われてるなぁ…
まぁいっか。試しに入れてるだけやし。
# dnf install --nobest docker-ce
・
・
・
インストール済み:
docker-ce-18.06.3.ce-3.el7.x86_64 libcgroup-0.41-19.el8.x86_64
Skipped:
docker-ce-3:19.03.5-3.el7.x86_64
完了しました!
入った!
ざざざーっと自動起動と起動
# docker --version
Docker version 18.06.3-ce, build d7080c1
# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
# systemctl start docker
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2019-12-05 12:25:57 JST; 6s ago
Docs: https://docs.docker.com
Main PID: 12836 (dockerd)
Tasks: 18 (limit: 4690)
Memory: 83.5M
CGroup: /system.slice/docker.service
├─12836 /usr/bin/dockerd
└─12842 docker-containerd --config /var/run/docker/containerd/containerd.toml
dockerのインストールはここまで。
Centos8で削除された機能
書くのつかれたので今度書きます。
結論
- Centso7使っていたら、そこまで苦労しない気がする。
- MWは触ってないからわかんない
- Centos6からは結構しんどい
- EOL長いから好き
リリースされたばっかりだから実際使うのはもうちょい経ったあとで、いろいろ情報出てきてからでもいいと思いました。
新しい物好きの人は触ってぜひ情報共有をお願いします!
■参考
Redhatのリリースノート
dnf のレポジトリ操作
nftables
MWのバージョン
pacemakerとcorosync
pacemaker