ワタシハRHELチョットデキル? RHEL 7 新機能のご紹介

こんにちわ、Red HatのパートナーSA 平です。

今回はRHELの最新バージョンであるRHEL 7の話をしましょう。RHEL 6までは「ワタシハRHELチョットデキル」と思っていたけども、RHEL 7で新しく採用されたSystemdをはじめ、動的ファイアウォールのFirewalld、Active Directory連携のrealmd、コンテナー管理のDockerなど新しい仕組みがいくつも入っています。

 

システム管理デーモン Systemd

RHEL7からは、システムが起動時に一番最初に起動するinitデーモンがUpstartから、systemdに変更になりました。これはRHEL7の中でも一番大きい変更と言えます。システムの起動時の初期化を並列化した事により、システムの起動が格段に高速化されました。
Systemdには従来のLinuxシステムにあったランレベルという概念がありません。そこでtarget unitという概念が用意されています。従来のランレベルに対応するために、ランレベル 3に相当する multi-user.target や、ランレベル 5に相当する graphical.target が互換性維持のために用意されています。

動的ファイアウォール Firewalld

Firewalldは、従来型のiptablesと同じくLinuxカーネルのNetfilterを使った動的ファイアウォールの実装です。
通過させるIPアドレス/ポートを列挙するACL型の静的ファイアウォールとは異なり、サービス指向でモダンな実装となっています。D-Busインターフェースを使いfirewalldに指示を出すことで、パケットの通過ルールを動的に許可/不許可にすることができます。アプリケーションからD-Busで直接呼び出す以外にも、CLIのfirewall-cmd、GUIのfirewall-configから設定変更を行うことも可能です。

Firewalldではネットワークを抽象化しゾーン(public/internal/trustedなど)に分けて管理します。iptablesにはシステム上では存在しなかった仕組みです。ネットワーク設計者が頭の中で考えていたゾーンの概念がファイアウォールにそのまま実装することができます。

Firewalldではネットワークインターフェースは、どこかのゾーンに属します。何も設定していないネットワークインターフェースはデフォルトゾーンに所属します。
そして、ゾーンに対して各種サービスの許可ルールを追加していきます。サービスの定義は約50個ほど事前に用意されており、そのサービスの定義の中にTCPやUDPのポート番号などの情報が定義されています。

Active Directory連携 realmd

RHEL 7ではMicrosoftのActive Directoryとの連携する仕組みがさらに強化され、realmdが新しく搭載されました。
新機能realmdを使って、RHEL 7のシステムをActive DirectoryやAzure ADの配下に参加させ、認証情報を一元管理する事が可能です。以前のようにSambaに設定を行う必要はありません。

また、RHEL 7からは「Windows統合ガイド」というドキュメントも用意されましたので興味があればご参照ください。

Red Hat Enterprise Linux 7 製品マニュアル - Windows統合ガイド
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/Windows_Integration_Guide/

コンテナー管理 Docker

RHEL 7から新しく搭載されたコンテナー管理のDocker はコンテナーイメージ(Dockerイメージ)の管理を中心として、コンテナー内のアプリケーションの稼働状況の管理や、稼働中のコンテナーが利用できるリソースの制限を行います。

コンテナー技術は仮想化技術と似ていますがしかし仮想化技術の代替ではありません。Dockerはアプリケーションやライブラリをコンテナーが持つディスクイメージの中に格納して、アプリケーションにポータビリティをもたらします。たとえ、コンテナーを稼働する環境が物理サーバー、仮想サーバー、パブリッククラウドであったとしても、Dockerが管理する環境であれば、コンテナー作成者が期待する通りにデプロイされ格納されているアプリケーションが期待通りに動きます。

よって、コンテナー技術は仮想化技術よりも上位層でアプリケーション開発者が期待するアプリケーション実行環境を提供し、Docker はコンテナー上で動かすアプリケーションの配信基盤を提供します。つまりDev&Opsを実現するため土台となる仕組みであり、その形式を定義したDockerフォーマットは開発者と運用担当者の架け橋となります。

Azure上でDockerを使う場合には、PAYGの仮想マシンではなく、Cloud Accessにてサブスクリプションを持ち込んで運用してください。Dockerコンテナー内でyumを動かす時の仕組みがSubscription Managerにしか対応しておらず、PAYGの場合に利用するRHUIからパッケージアップデートを行えません。

また、本格的にDev&Opsを実現するためにCI/CDでの運用を見据えたコンテナーの管理を行うには、Red Hat OpenShift Container Platformがおすすめです。こちらはCloud AccessにてAzure上に持ち込んで利用することができます。

今日からできるDocker on RHEL7
https://jp-redhat.com/migration/docker/article.html

2024年まで使える知識を身につけよう!

RHEL 7は10年間の製品ライフサイクルで提供される製品なので、RHEL 7のスキルを身につけると製品リリースの10年後である2024年まで使えます。

先日、Red Hat on Azure Partner Networkのセミナーでも配布させてした書籍「できるPRO Red Hat Enterprise Linux 7」をお読み頂き、AzureでRHEL 7をはじめてみませんか?そして、もっと腕に自信を付けたい場合には、レッドハットが提供しているRHEL 7のトレーニングコース「RH200: RHCSA速習コース+認定試験」もおすすめです。

参考リンク: