Skip to main content
CentOS Linux 8 の EOL と
対応策の検討
OSC2022 Online/Spring
11 Mar 2022
@zembutsu
今日の流れ
• CentOS 8 は EOL 済み
• dnf が扱えないので、 vault リポジトリを参照する設定が必要
• 移行スクリプトのデモをします!
• CentOS 8 はどうしたら?
• 互換性のあるディストリビューションに移行 ( AlmaLinux, Rocky Linux, RHEL 等 )
• 別のディストリビューションに載せ替え ( Debian , Ubuntu 等)
• 諦める。達観の境地
• CentOS に一体何が起こったのか?
• 第3の道(みなさんご興味あれば)
2
CentOS 8 は EOL
3
CentOS 8 は End of Life (EOL)
• 2022年12月31日で EOL
• [2020/12/8] CentOS Project shifts focus to CentOS Stream – Blog.CentOS.org
https://blog.centos.org/2020/12/future-is-centos-stream/
• dnf / yum は使えなくなりました
4
# dnf update
CentOS Linux 8 - AppStream 73 B/s | 38 B 00:00
エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist:
No URLs in mirrorlist
/etc/yum.respos.d/ 以下の書き換え
• 「mirror.centos.org」を「vault.centos.org」に変更する必要
5
# sed -i -r ¥
-e 's!^mirrorlist=!#mirrorlist=!' ¥
-e 's!^#?baseurl=http://(mirror|vault).centos.org/¥$contentdir/¥$releasever/!baseurl=
https://dl.rockylinux.org/vault/centos/8.5.2111/!i' ¥
/etc/yum.repos.d/CentOS-*.repo
# dnf update
補足資料:https://bit.ly/osc22on-centos
CentOS 8 はどうしたら?
6
私たちに残された選択肢 → ディストリビューション転換
1. Red Hat Enterprise Linux 8 を導入する
2. CentOS Stream 8 に移行する ( EOL 2024-05-31 )
3. 他の RHEL 派生ディストリビューションを使う
1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など)
2. MIRACLE Linux、Oracle Linux、VzLinux
4. 他の Linux ディストリビューションに移行する
1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系
2. openSUSE等
5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す
7
現実問題と向き合う (逃げちゃだめだ)
• 業務で今「動いています」の場合
→RHEL 一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux )
• 開発用途です、個人用です「動けば良いです」の場合
• CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討
→ SentOS Stream
→ AlmaLinux OS
→ Rocky Linux
→ MIRACLE LINUX
→ Oracle Linux
• 他のディストリビューションを検討
• 死んだふりをする
8
現実問題と向き合う (逃げちゃだめだ)
• 業務で今「動いています」の場合
→RHEL 一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux )
• 開発用途です、個人用です「動けば良いです」の場合
• CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討
→ SentOS Stream
→ AlmaLinux OS
→ Rocky Linux
→ MIRACLE LINUX
→ Oracle Linux
• 他のディストリビューションを検討
• 死んだふりをする
9
CentOS 8 に対応している移行スクリプト
• 移行スクリプトを使い、CentOS 8 から移行
• CentOS Stream 8
• AlmaLinux OS
• Rocky Linux
• MIRACLE LINUX
• RHEL
• Oracle Linux
10
補足資料:https://bit.ly/osc22on-centos
CentOS 8 に対応している移行スクリプト
• 移行スクリプトを使い、CentOS 8 から移行
• CentOS Stream 8
• AlmaLinux OS
• Rocky Linux
• MIRACLE LINUX
• RHEL
• Oracle Linux
11
補足資料:https://bit.ly/osc22on-centos
CentOS に何が起こったのか?
12
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
13
Red Hat Linux
1.0
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
14
Red Hat Linux
1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
15
Red Hat Linux
1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9
Vine Linux
3.0
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
• 2007年2月9日 Fedora Legacy プロジェクト終了
16
Red Hat Linux
1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9
Vine Linux
3.0
元々の経緯
• Community ENTerprise Operating System (2004年5月14日リリース)
17
RHEL
2.1
CentOS
2.1
元々の経緯
• Community ENTerprise Operating System (2004年5月14日リリース)
• 2007年2月9日 Fedora Legacy プロジェクト終了に伴い CentOS が注目
• CentOS FAQ 日本語版
http://pocketstudio.jp/centos/
18
RHEL
2.1
CentOS
2.1
19
20
8 December 2020
21
22
RHEL
CentOS
23
RHEL
CentOS
RHEL
CentOS Stream
私たちに残された選択肢
24
私たちに残された選択肢 → ディストリビューション転換
1. Red Hat Enterprise Linux 8 を導入する
2. CentOS Stream 8 に移行する ( EOL 2024-05-31 )
3. 他の RHEL 派生ディストリビューションを使う
1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など)
2. MIRACLE Linux、Oracle Linux、VzLinux
4. 他の Linux ディストリビューションに移行する
1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系
2. openSUSE等
5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す
25
Rocky Linux - Introduction
Rocky Linux とは何か?
• コミュニティをベースにした開発・運用
• CentOS プロジェクト創設者 Gregory Kurtzer 氏が参画
• “Rocky Linux is a community enterprise operating system designed to be
100% bug-for-bug compatible with America's top enterprise Linux
distribution now that its downstream partner has shifted direction. “
• 2021年4月30日 8.3 RC リリース
• 2021年6月21日 8.4 GAリリース
• x86_64 、ARM 版提供中
• https://rockylinux.org/ja/
27
AlmaLinux - Introduction
AlmaLinux とは何か?
• Alma = “魂”
• “An open-source RHEL fork build by the team at CloudLinux,
inspired by the community”
• CloudLinux 社が開発・メンテナンス・スポンサード
• Project Lenix -> Alma Linux
• 4,000 社に CloudLinux OS を提供している経験
• コミュニティに対して、常に無料でオープンソースとして提供
• 2029年までサポートをコミット
• x86_64 、ARM 版提供中
29
AlmaLinux についての情報を手に入れるには?
• 公式サイト
• https://almalinux.org/
• Wiki
• https://wiki.almalinux.org/
• 公式ブログ
• https://almalinux.org/blog/
• Twitter
• https://twitter.com/almalinux
30
コンテナ? Docker?
クラウドネイティヴ対応
第3の道
31
© 2018 Cloud Native Computing Foundation
32 ※ https://github.com/cncf/presentations からの引用
コンテナ クラウド
ネイティブ
仮想化からクラウド・ネイティブへ
From Virtualization to Cloud Native
• クラウド・ネイティブ・コンピューティングはオープンソースの
ソフトウェアを積み重ね、次のために用います:
– アプリケーションをマイクロサービス(microservices)に分割し、
– 各パーツ自身をコンテナにパッケージし、
– リソース利用を最適化するために、動的に統合/
オーケストレート(orchestrate)する
オープン
ソース
IaaS
PaaS
オープン
ソース
PaaS
仮想化
2000 2001 2006 2009 2010 2011
非仮想化
ハードウェア
2013 2015
IaaS
33
“Dockerは銀の弾丸ではない”
• 前提として、Dockerは(いわゆる)「仮想化技術」とは異なる思想・技術背景
• 「コンテナ型仮想化」として表現・比較されるが [要出典]
• セキュリティ要件によっては、コンテナの利用より仮想化技術を選択すべき
• そのため、延命措置目的で CentOS 6 コンテナへの移植はすべきではない
• (特性を理解した上で)有用な場面もある
• 技術(再)検証や手順の(再)作成
• デプロイを素早く行いたい
• バッチ的な処理
• どうしても使わざるを得ない場合は
• Docker の基本概念を理解した上で利用する
• 丸ごと移植ではなく、移行のための一時措置
• 最新の公式ドキュメントが常に正しい
34
アプリケーションの“Build, Share, Run” を素早く簡単に
ハードウェアの
大阪弁と京都弁を「関西弁」と一括りにしたら、
みんな怒るとおもう
OS レベルの
CentOS on Docker にあたって
• 【最重要】 Docker は「仮想化技術」ではありません
• 「アプリケーション・コンテナ」と「システム・コンテナ」は考え方が違う
• 稼働中の環境を、丸っと移行は無理
• 例:initがない
• 例:セキュリティ対策や日々の運用をどうするか
• 既存環境を CentOS 6 のコンテナ移行ではなく、環境再構築検証の用途に
• 従来の手順書で再現ができるかどうか
• なければこの機会に手順化
• 技術習得の機会に
• いきなり未知のものをコンテナ化して取り組むより、
よく知っているもののほうが移行しやすい
• ただし、コンテナ活用の用途は「アプリケーション・コンテナ」に限るべきであり、
無理矢理すべてを「そのまま」コンテナ化すべきという話ではない
35
Docker 移行の考え方
• 前提として 『 適切に Docker を使うべき理由 』 がある
• CentOS 8 上で、アプリケーションを Docker イメージ化する
• Linux ホスト側の環境が変わっても、Docker イメージは実行可能
• 移行前に準備した Docker 対応アプリケーションは、
移行後も Docker コンテナとして実行可能
36
Dockerfile
Dockerfile にイメージ構築に必要な全ての命令を書く
• Dockerイメージは読み込み専用のイメージレイヤ群で構成
• 各イメージ・レイヤが Dockerfile の命令に相当する
• 記述例
37
FROM centos:centos6.10
Dockerfile
Dockerfile にイメージ構築に必要な全ての命令を書く
• Dockerイメージは読み込み専用のイメージレイヤ群で構成
• 各イメージ・レイヤが Dockerfile の命令に相当する
• 記述例
38
FROM centos:centos6.10
RUN yum update -y
レイヤは親子関係を持ち、依存・参照
Dockerfile
Dockerfile にイメージ構築に必要な全ての命令を書く
• Dockerイメージは読み込み専用のイメージレイヤ群で構成
• 各イメージ・レイヤが Dockerfile の命令に相当する
• 記述例
39
FROM centos:centos6.10
RUN yum update –y
CMD [“httpd-foreground”]
レイヤは親子関係を持ち、依存・参照
CentOS 8 の公式イメージを使った Dockerfile 例 40
Dockerfile
FROM centos:8
RUN dnf -y install httpd php
ADD https://raw.githubusercontent.com/docker-
library/httpd/077141ee37fca63972292c562ec0f632d0f831b1/2.4/httpd-foreground
/usr/local/bin/
RUN chmod 700 /usr/local/bin/httpd-foreground
RUN sed -i -e 's%^#LoadModule mpm_prefork_module
modules/mod_mpm_prefork.so%LoadModule mpm_prefork_module
modules/mod_mpm_prefork.so%' /etc/httpd/conf.modules.d/00-mpm.conf
RUN sed -i -e 's%^LoadModule mpm_event_module
modules/mod_mpm_event.so%#LoadModule mpm_event_module
modules/mod_mpm_event.so%' /etc/httpd/conf.modules.d/00-mpm.conf
EXPOSE 80
COPY ./html/* /var/www/html
CMD ["httpd-foreground"]
PHP7 の公式イメージを使った Dockerfile 例 41
Dockerfile
FROM php:7.2-apache
COPY ./html/* /var/www/html
CentOS 6 の公式イメージを使った Dockerfile 例 42
Dockerfile
FROM centos:centos6.10
RUN sed -i
'/^mirrorlist/s/^/#/;/^#baseurl/{s/#//;s/mirror.centos.org¥/centos¥/$releas
ever/vault.centos.org¥/6.10/}' /etc/yum.repos.d/*B* && ¥
yum install -y epel-release && ¥
yum update -y && ¥
cp -f /usr/share/zoneinfo/Japan /etc/localtime
RUN yum -y install php httpd
EXPOSE 80
RUN echo '<?php phpinfo(); ?>' > /var/www/html/index.php
ADD https://raw.githubusercontent.com/docker-
library/httpd/077141ee37fca63972292c562ec0f632d0f831b1/2.4/httpd-foreground
/usr/local/bin/
RUN chmod 700 /usr/local/bin/httpd-foreground
CMD ["httpd-foreground"]
PHP5 の公式イメージを使った Dockerfile 例 43
Dockerfile
FROM php:5.6-apache
COPY ./html/* /var/www/html
Docker 移行の考え方(ポイント)
• 前提として 『 適切に Docker を使うべき理由 』 がある
• CentOS 8 上で、アプリケーションを Docker イメージ化する
• Linux ホスト側の環境が変わっても、Docker イメージは実行可能
• 移行前に準備した Docker 対応アプリケーションは、
移行後も Docker コンテナとして実行可能
44
振り返り
45
46
RHEL
CentOS
RHEL
CentOS Stream
私たちに残された選択肢 → ディストリビューション転換
1. Red Hat Enterprise Linux 8 を導入する
2. CentOS Stream 8 に移行する ( EOL 2024-05-31 )
3. 他の RHEL 派生ディストリビューションを使う
1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など)
2. MIRACLE Linux、Oracle Linux、VzLinux
4. 他の Linux ディストリビューションに移行する
1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系
2. openSUSE等
5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す
47
現実問題と向き合う (逃げちゃだめだ)
• 業務で今「動いています」の場合
→RHEL 一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux )
• 開発用途です、個人用です「動けば良いです」の場合
• CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討
→ SentOS Stream
→ AlmaLinux OS
→ Rocky Linux
→ MIRACLE LINUX
→ Oracle Linux
• 他のディストリビューションを検討
• 死んだふりをする
48
発表は以上です。気になることはありますか?
https://slideshare.net/zembutsu
49
補足資料
https://bit.ly/osc22on-centos