Red Hat Enterprise Linux Atomic Host スタートガイド

更新 -

Red Hat Enterprise Linux Atomic Host は、最小バージョンの Red Hat Enterprise Linux で Linux コンテナーをホストする方法を提供します。このナレッジでは、Red Hat Enterprise Linux Atomic Host を入手、インストール、登録、アップデート、設定、アップグレード、そして実行する方法を説明します。このガイドでは、Red Hat Enterprise Linux Atomic Host にアプリケーションをインストールする方法を説明します。

目次

概要

この Atomic クイックスタートガイドでは Red Hat Enterprise Linux Atomic Host を設定する方法を説明します。

Red Hat Enterprise Linux Atomic Host は、Docker フォーマットで Linux コンテナーを実行するのに最適化された Red Hat Enterprise Linux 7 製品となります。Red Hat Enterprise Linux 7 で提供されている高度な技術を使用するために設計されました。Red Hat Enterprise Linux Atomic Host は、SELinux によるマルチテナント環境での強固な保護機能、 アトミックなアップグレードとロールバックの機能によるダウンタイムの少ない迅速で簡単なメンテナンスを提供しています。Red Hat Enterprise Linux Atomic Host は、Red Hat Enterprise Linux 7 と同じ RPM パッケージから配信したアップストリームプロジェクトを使用します。

Red Hat Enterprise Linux Atomic Host は、Linux コンテナーをサポートするために、以下のツールがプリインストールされています。

Red Hat Enterprise Linux Atomic Host は、以下のテクノロジーを使用します。

  • OSTree および rpm-OSTree: アトミックアップなアップグレードと、ロールバックする機能を提供します。
  • systemd: Linux システムにおける強力な新しい init システムにより、起動時間が速くなり、システムの編成を容易にします。
  • SELinux: 完全なマルチテナントセキュリティを提供するため、デフォルトで有効にします。また、Integrity Measurement Architecture (IMA)、audit、および libwrap が systemd から利用できます。

重要: Red Hat Enterprise Linux Atomic Host の管理方法は、その他の Red Hat Enterprise Linux 7 製品とは異なります。主に以下の点が異なります。

  • yum を使用せずにシステムをアップグレードします。詳細については、Red Hat Enterprise Linux Atomic Host でアプリケーションをインストールを参照してください。
  • ローカルシステムの設定には 2 つの書き込み可能なディレクトリ (/etc/ および /var/) があります。/usr/ ディレクトリは読み取り専用でマウントされます。その他のディレクトリは書き込み可能な場所へのシンボリックリンクです。たとえば、/home/ ディレクトリは /var/home/ ディレクトリへのシンボリックリンクです。詳細については、Red Hat Enterprise Linux Atomic Host のファイルシステムを参照してください。
  • デフォルトのパーティション方法は、そのほとんどがコンテナーで利用できる領域に使用され、デフォルトのループバックの代わりに LVM を直接使用します。

ユーザーおよびホスト固有のデータは、/var/ ディレクトリにのみ保存される必要があります。/etc/ ディレクトリ配下に保存されるファイルだけが修正可能です。詳細については、Red Hat Enterprise Linux Atomic Host のファイルシステムを参照してください。

Red Hat Enterprise Linux Atomic Host のファイルシステム

Red Hat Enterprise Linux Atomic Host は、オープンソースツールの 1 つである rpm-OSTree (別名 atomic) を使用し、ブート可能でイミュータブルな、バージョン管理された RPM コンテンツのファイルシステムツリーを管理します。これらのツリーは、パッケージから構成されます。rpm-ostree ツールはツリーの複製をアトミックに作成するため、アトミックアップデートを中心としたアップグレードとメンテナンス方法になります。ソフトウェアのアップグレードおよびメンテナンスに yum ではなく rpm-ostree を使用した場合は、Red Hat Enterprise Linux Atomic Host の管理方法がその他の Red Hat Enterprise Linux 7 製品と異なります。

たとえば、Red Hat Enterprise Linux Atomic Host を使用する場合は、オペレーティングシステムのコンテンツが読み取り専用でマウントされます。アップデート方法は以下のように行います。現在起動可能なファイルシステムツリーを持つストレージを共有する起動可能なファイルシステムツリーを新たに作成します。古いファイルシステムツリーと新しいファイルシステムツリーがともに保存されます。これにより、ファイルシステムツリーに作成されたアップグレード前のバージョンがアップグレード後のバージョンより好ましい場合は、アップグレード前のバージョンが実行バージョンとして自動的に復元されます。

コンテナーおよびデータを含むアップグレード間で継続して利用されるユーザーファイルは /var/ ディレクトリに保存されています。オペレーティングシステム関連ファイルは /usr/ ディレクトリ配下に配置され、読み取り専用になります。ルートディレクトリで、ls -l / コマンドを使った詳細リスト形式の表示コマンドを実行すると、従来のルートディレクトリ配下のディレクトリの多くが、これらの 2 つの場所のいずれかに対するシンボリックリンクであることが確認できます。たとえば、/home/ ディレクトリは /var/home/ ディレクトリへのシンボリックリンクです。つまり、このディレクトリは、アップグレード間で継続して利用されます。

ルート (/) ディレクトリには、 2 つの新しいディレクトリ (/sysroot/ ディレクトリと /ostree/ ディレクトリ) があります。これらのディレクトリの詳細については、Understanding atomic upgrades in Red Hat Enterprise Linux Atomic Host を参照してください。

Red Hat Enterprise Linux Atomic Host を入手してインストールする

Red Hat Enterprise Linux Atomic Host は複数のフォーマットで配信され、ベアメタル、複数の仮想環境、そしてパブリックおよびプライベートのクラウドインフラストラクチャーにインストールできます。インストールメディアの下の [Download] をクリックすると、Red Hat Enterprise Linux Atomic Host Product Page にインストールメディアが表示されます。完全インストールの方法は、Red Hat Enterprise Linux Installation Guide を参照してください。

システム要件

Red Hat Enterprise Linux Atomic Host は、過去 2 年以内に工場生産された大半のハードウェアと互換性があります。ハードウェアの互換性は、古いシステムをお使いの場合、またはシステムを自作した場合に特に重要になります。ハードウェアの仕様はほぼ毎日変更するため、すべてのシステムの互換性を確認することが推奨されます。サポートされるハードウェアについては、Red Hat Hardware Compatibility List を参照してください。システム要件の一般的な情報については、Red Hat Enterprise Linux technology capabilities and limits を参照してください。

Red Hat Enterprise Linux Atomic Host のランタイム要件は Red Hat Enterprise Linux と同じです。ただし、ベアメタルまたは仮想環境の Anaconda ベースのインストール (インタラクティブ、キックスタート、および PXE) の場合はメモリが 2GB 必要です。

Red Hat Enterprise Linux Atomic Host を登録する

ソフトウェアアップデートを有効にするには、Red Hat Enterprise Linux Atomic Host インストールを登録する必要があります。これは、以下に説明したとおりに subscription-manager コマンドで実行できます。お使いのシステムは、HTTP プロキシを使用する必要があるネットワークに保存されます。詳細については、configuring subscription manager to use an HTTP proxy を参照してください。--name= オプションを使用すると、サブスクリプションレコードを表示する際に名前が追加されるため簡単に覚えられるようになります。

$ sudo subscription-manager register --username=<username> --auto-attach

注意: Red Hat Enterprise Linux Atomic Host は Red Hat Subscription Manager (RHSM) とのみ連携します。Red Hat Enterprise Linux Atomic Host は RHN とは連携しません。

注意: Red Hat Enterprise Linux Atomic Host は、2 つの製品 ID を登録します。Product ID 271, Red Hat Enterprise Linux Atomic Host とProduct ID 69, Red Hat Enterprise Linux Server の 2 つの ID が必要です。両方とも、同じエンタイトルメントを使用します。

適切に登録したシステムには、以下のように両方の ID が表示されます。

~~~
$ sudo subscription-manager list
+-------------------------------------------+
    Installed Product Status
+-------------------------------------------+
Product Name:   Red Hat Enterprise Linux Atomic Host
Product ID:     271 
Version:        7
Arch:           x86_64
Status:         Subscribed
Status Details: 
Starts:         02/27/2015
Ends:           02/26/2016

Product Name:   Red Hat Enterprise Linux Server
Product ID:     69
Version:        7.1
Arch:           x86_64
Status:         Subscribed
Status Details: 
Starts:         02/27/2015
Ends:           02/26/2016

~~~

特定のサブスクリプションプールを指定する必要がある場合の subscription-manager の利用方法については、既知の問題セクションを参照してください。subscription-manager コマンドの詳細は、Red Hat Subscription Management3.2. Registering from the Command Line を参照してください。コンテナーのホストとなるシステムのリポジトリをコンテナーがどのように継承するかについては、How do Docker containers use Red Hat subscriptions or entitlements to access repositories? を参照してください。

Red Hat Enterprise Linux Atomic Host を設定する

Red Hat Enterprise Linux Atomic Host は、/etc/ ディレクトリの設定ファイルを使用して、Red Hat Enterprise Linux 7 と同様の方法で設定されます。Red Hat Enterprise Linux Atomic Host は、デスクトップを使用しない最小のサーバー製品です。したがって、GUI で使用されるグラフィカル設定ツールは利用できません。

現在、Red Hat Enterprise Linux 7 で /etc/passwd ファイルに挙げられている一部のシステムユーザーが、読み取り専用の /usr/lib/passwd ファイルに移動しています。Red Hat Enterprise Linux Atomic Host のアプリケーションは Linux コンテナー内で実行するため、デプロイメントには影響しません。useradd などの従来のユーザー管理ツールは、/etc/passwd ファイルにローカルで追加したユーザーを記載します。

インストール時にネットワークを設定していない場合は、nmcli ツールを使用して、インストール後に設定する可能性があります。以下のコマンドは、atomic と呼ばれるネットワーク接続の作成、ホスト名の設定、その接続を有効にしています。

    # nmcli con add type ethernet con-name atomic ifname eth0
    # nmcli con modify my-office my-office ipv4.dhcp-hostname atomic ipv6.dhcp-hostname atomic
    # nmcli con up atomic

nmcli ツールの詳細は、Red Hat Enterprise Linux 7 Networking Guide の Section 2.3.2. Connecting to a Network Using nmcli を参照してください。

Red Hat Enterprise Linux 7 の設定方法については、Red Hat Enterprise Linux 7 System Administrator's Guide を参照してください。

Red Hat Enterprise Linux Atomic Host のアップグレードとアップグレードの取り消し

Red Hat Enterprise Linux Atomic Host は、オープンソースツールの 1 つである rpm-OSTree を使用し、ブート可能でイミュータブルな、バージョン管理された RPM コンテンツのファイルシステムツリーを管理します。yum を使用し、従来のパッケージ管理モデルを持つその他の Red Hat Enterprise Linux 7 製品とは異なり、Red Hat Enterprise Linux Atomic Host には OSTree が使用されます。新しいオペレーティングシステムの root を用意し、次回の起動時のデフォルトにするとアップデートされます。

アップグレードを実行するには、以下のコマンドを実行します。

$ sudo atomic host upgrade
$ sudo systemctl reboot

HTTP プロキシが必要なシステムを使用している場合は、環境変数でプロキシが設定できます。環境変数を設定するには、以下のようなコマンドを使用します。

$ sudo env http_proxy=http://proxy.example.com:port/ atomic host upgrade

Red Hat Enterprise Linux Atomic Host を以前のインストールに戻すには、以下のコマンドを実行します。

$ sudo atomic host rollback
$ sudo systemctl reboot

2 つのバージョンの Red Hat Enterprise Linux Atomic Host が、最初のアップグレード後にシステムで利用できます。1 つは、現在実行しているシステムです。もう 1 つは、アップグレードから最近インストールされた新しいバージョン、または最新のアップグレード前に保存されたバージョンとなります。

重要: 設定はアップデート後も持続しますが、前のバージョンに戻すときは保存されません。したがって、設定を変更した後に以前のバージョンにロールバックすると、変更した設定は元に戻ります。

注意: atomic host upgrade コマンドを実行すると、Red Hat Enterprise Linux Atomic Host の実行していないバージョンに代わります。また、このバージョンは、次の起動時に使用されるように設定されます。

実行するオペレーティングシステムのバージョンを指定するには、以下のコマンドを実行します。

$ sudo atomic host status

/ostree/deploy/rhel-atomic-host/ 内に保存されているディレクトリのハッシュ名を含んだ出力は、以下のようになります。

$ sudo atomic host status
  TIMESTAMP (UTC)         VERSION   ID             OSNAME               REFSPEC                                                 
* 2015/05/07 19:00:48     7.1.2     203dd666d3     rhel-atomic-host     rhel-atomic-host:rhel-atomic-host/7/x86_64/standard     
  2015-04-02 20:14:06     7.1.1-1   21bd99f9f3     rhel-atomic-host     rhel-atomic-host:rhel-atomic-host/7/x86_64/standard     

この出力例は、バージョン 7.1.0 が次回の再起動時に起動することを示しています。次回の再起動時に起動するバージョンは先頭に表示されます。

また、この例では、version 7.0.9 が現在実行中のバージョンであることを示しています。現在実行中のバージョンには、アスタリスク (*) が表示されます。この出力は、 atomic host upgrade コマンドを実行した直後に生成されるため、新しいバージョンは、次回の再起動時に適用されるように段階分けされることを示しています。

Red Hat Enterprise Linux Atomic Host における Atomic のアップグレードを理解する

Red Hat Enterprise Linux Atomic Host システムの起動時には実質、システムが chroot 、または "change root" 環境に入ります。これは、dracut プラグイン内で起動時の早い段階で実行されます。"physical root" は /sysroot/ ディレクトリにマウントされます。

/ostree/ ディレクトリはトップディレクトリにあります。この /ostree/ ディレクトリは /sysroot/ostree/ ディレクトリへのシンボリックリンクとなるため、起動時のルートでも利用できます。このディレクトリには以下のコンポーネントが含まれます。

  • repo

    repo ディレクトリは、git の .git ディレクトリに類似しています。これには、デプロイメントを作成するのに必要なファイルが含まれます。このリポジトリのバージョンがコントロールされていて、複数のバージョンを同時に維持する情報を含んでいます。このリポジトリを使って、アップグレード時に変更しなかったファイルを、ディスク上で重複しないよう維持します。これは、ストレージを保持し、アップデート時に差分 (変更したファイル) だけをダウンロードし、非常に小さいサイズでアップグレードできるようにします。

  • deploy

    deploy ディレクトリには、様々なバージョンのオペレーティングシステムインストールが含まれます。/ostree/deploy/rhel-atomic-host/deploy/ ディレクトリは「デプロイメント」で、リポジトリへのハードリンクと、/etc/ ディレクトリの書き込み可能なコピーで構成されます。ファイルシステムの各ツリーは、Red Hat Enterprise Linux Atomic Host で起動可能なバージョンになります。

  • deploy/rhel-atomic-host/var/

    このディレクトリはデプロイメント間で共有されており、起動したシステムでバインドマウントされた /var/ として表示されます。

  • boot/loader.0 and/or boot/loader.1

    Atomic アップグレードは、ブートローダー設定を交換することで動作させています。/boot/loader シンボリックリンクは .0 または .1 を指定します。アップグレードが配信されると、新しいデプロイメントの root を指す新しいブートローダー設定が生成されます。

  • boot.0.1 and/or boot.1.1

    起動するファイルシステムを含んだ実際のディレクトリがあります。これらのディレクトリは repo ディレクトリへのハードリンクであり、ディスク領域の使用を最小限に抑えています。

atomic アップグレードは、現在インストールされている Red Hat Enterprise Linux Atomic Host のいずれかで起動し、root (/) のファイルシステムとして deploy ディレクトリをマウントすることで有効になります。

アップグレードを容易にするためにパーティションの root へのアクセスを保持するには、パーティションのファイルシステムの真のルートディレクトリが、/sysroot/ ディレクトリにマウントされます。

警告: /ostree/ ディレクトリのコンテンツは直接修正しないでください。/sysroot/ ディレクトリを修正しないでください。アップグレード後は保存されないため、ルートディレクトリにファイルを保存したり、ディレクトリを作成しないでください。

Red Hat Enterprise Linux Atomic Host における Atomic のロールバックを理解する

atomic のロールバック時に実行されたシステム変更は、ブートローダー順になります。ロールバック時にデータは変更されません。

/var は、2 つの起動ターゲット間 (2 つのツリー間) で共有されます。ロールバックは /var/home には影響せず、コンテナーにも影響しません。

各デプロイメント (各ツリー) で /etc のコピーがあります。/etc の設定変更は後のバージョン時には適用されますが、前のバージョンには適用されません。これは、変更後にダウンロードしたすべての新しいツリーには変更が反映されてますが、変更前にダウンロードしたツリーには変更が反映されないことを示しています。

Red Hat Enterprise Linux Atomic Host でコンテナーを実行する

Red Hat Enterprise Linux Atomic Host をインストールしたら、コンテナーを実行できます。

Red Hat Enterprise Linux 7 Atomic Host で Docker コンテナーを使用する方法については、Get Started with Docker Formatted Container Images on Red Hat Systems を参照してください。

Red Hat Enterprise Linux Atomic Host でコンテナーをビルドする

Red Hat Enterprise Linux Atomic Host は、Kubernetes を使用して Linux コンテナーをビルドします。Kubernetes の詳細は Get Started Orchestrating Containers with Kubernetes を参照してください。

Red Hat Enterprise Linux Atomic Host でアプリケーションをインストールする

パッケージ管理は、Red Hat Enterprise Linux Atomic Host では現在サポートされていません。つまり、yumrpm を使用してアプリケーションの追加インストールすることはできません。

Red Hat Enterprise Linux Atomic Host でアプリケーションを実行する場合は、Linux コンテナーから実行することが推奨されます。

現時点では、Red Hat Enterprise Linux Atomic Host に直接アプリケーションを追加する場合は、/var/ ディレクトリにアプリケーションを配置する必要があります。多くのアプリケーションは、コンパイル時に、インストールディレクトリを指定できます。これは、他の Red Hat Enterprise Linux サーバーから静的にリンクされたバイナリをコピーする場合に便利です。

既知の問題

以下の問題が報告されています。

  • rhn_register が "command not found" を返します。

    Red Hat Network エンタイトル管理は Red Hat Enterprise Linux Atomic Host ではサポートされていません。上述したように subscription-manager を使用してください。

  • atomic host upgrade 実行時の "key file doesn't have value" エラーメッセージ

    atomic host upgrade が、/var/log/audit/audit.log ファイルに出力される selinux エラー "key file doesn't have value" で失敗する場合があります。この場合は、以下の手順でインスタンスを再登録する必要があります。

    1. 以下のコマンドを実行して、rhsmcertd デーモンを停止します。

      $ sudo systemctl stop rhsmcertd
      
    2. 以下のコマンドを実行して、既存の登録をすべて削除します。

      $ sudo subscription-manager clean
      
    3. get started with red hat enterprise linux atomic host に記載されているように、システムを再登録します。

    4. atomic host upgrade コマンドを実行します。

    詳細は BZ#1117420 を参照してください。

  • atomic には、HTTP プロキシ設定オプションがありません。

    HTTP プロキシが必要なシステムを使用している場合は、環境変数でプロキシが設定できます。設定オプションは将来的にサポートされます。HTTP プロキシを持つ atomic を実行するには、以下のようなコマンドを実行してください。

    $ sudo env http_proxy=http://proxy.example.com:port/ atomic host ...
    
  • Red Hat Enterprise Linux Atomic Host が適切なサブスクリプションプールを使用していることを確認する必要があります。

    以下の手順に従って、ホストが使用するサブスクリプションプールを手動で指定できます。

    1. お使いのマシンを登録します。

      $ sudo subscription-manager register --username=<username>
      
    2. 利用可能なサブスクリプションの一覧を表示します。

      $ sudo subscription-manager list --available
      

      このコマンドの出力例は、以下のようになります。"Red Hat Enterprise Linux Atomic Host " を提供しているサブスクリプションのプール ID を確認してください。

      +-------------------------------------------+
          Available Subscriptions
      +-------------------------------------------+
      Subscription Name:Red Hat Enterprise Linux Beta
      Provides:          ...
                         Red Hat Enterprise Linux Atomic Host
                         ...
      SKU:               RH...9
      Contract:          10...6
      Pool ID:           8a...b2
      Available:         Unlimited
      Suggested:         1
      Service Level:     Self-Support
      Service Type:      L1-L3
      Subscription Type:Instance Based
      Ends:              12/31/14
      System Type:       Physical
      

      このサブスクリプションが見つからない場合は、エンタイトルメントを使い切った可能性があります。コマンドを再度実行して --all オプションを追加し、再度検索してください。他のホストを再登録しないといけない場合があります。

    3. ホストにサブスクリプションを付与します。

      $ sudo subscription-manager attach --pool <pool_id>
      

リリースノート

2014 年 10 月 24 日 (金) に公開された Red Hat Enterprise Linux Atomic Host へのアップデートには、以下の機能が含まれます。

  • Anaconda、PXE、およびキックスタートを経由した 「ベアメタル」のインストールサポート
  • GRUB2 ブートローダー
  • コード修正およびパッケージのアップデート
  • geard がコンテナー編成を持つ Kubernetes に代わる

Anaconda、PXE、またはキックスタートを使用してインストールするには、このナレッジに記載されたとおりに ISO インストールメディアをダウンロードしてください。GRUB2 ブートローダーを使用するにはクリーンインストールを実行する必要があります。その他のすべての変更は、既存の Red Hat Enterprise Linux Atomic Host インストールをアップグレードすると利用できます。

ドキュメントのリリースノート

subscription-manager の詳細については、Red Hat Subscription Management3.2. Registering from the Command Line を参照してください。

FAQ

    • 質問: rhn_register および rhn_regks コマンドが "Command not found." メッセージを返します。どのような対応が必要ですか?
      • 回答: アップデートに RHN を使用しないで、上述されている Red Hat Subscription Manager (RHSM) を使用してください。
    • 質問: 再起動後にどのイメージがアップデートされたのかが分かりません。何がアップデートされましたか?
      • 回答: ホスト: 0 がアップデートされたイメージです。
    • 質問: Red Hat Enterprise Linux Atomic Host で root パスワードを変更するにはどうしたら良いですか?
      • 回答: Red Hat Enterprise Linux Atomic Host で /.autorelabel を変更することはできないため、RHEL Password Reset Documentation で説明されている方法で root パスワードを変更することはできません。以下の方法で selinux ポリシーを変更すれば、ラベルを再設定する必要はなくなります。
    1. linux16 で始まる grub 行を修正します。init=/bin/bash を行末に追加します。

    2. root のファイルシステム (/) を読み書き権限で再マウントします。

      # mount -o remount,rw /
      
    3. /sys/fs/selinux に selinuxfs ファイルシステムをマウントします。

      # mount -t selinuxfs selinuxfs /sys/fs/selinux
      
    4. selinux ポリシーを再ロードします。

      # /usr/sbin/load_policy -i
      
    5. passwd コマンドを使用して root パスワードを変更します。

      # passwd
      
    6. root のファイルシステムを読み取り専用で再マウントします。

      # mount -o remount,ro /
      
    7. サインアウトします。

      # exit
      

      注意: この手順によりバックトレースが生成されます。これは予期された動作です。この時、bash に設定された pid 1 は終了しています。次の手順に進んでください。

    8. マシンの電源を一度切って再度つけます。

    • 質問: Red Hat Enterprise Linux Atomic Host をダウンロードできるかどうかはどうすれば確認できますか?