第4章 CDK の Fedora または Red Hat Enterprise Linux へのインストール

4.1. CDK の Fedora または Red Hat Enterprise Linux へのインストール

Fedora または Red Hat Enterprise Linux システムで Red Hat CDK を実行する準備をするには、以下のステップを実行します。

  1. まだ実行していない場合は、ホストのオペレーティングシステム (Fedora 23 Workstation および Red Hat Enterprise Linux 7.2 Server はテスト済み) をインストールします。
  2. KVM/libvirt 仮想化ソフトウェアのインストール
  3. Vagrant のインストール
  4. Red Hat Container Tools および Red Hat Enterprise Linux 用の Vagrant box のダウンロード。
  5. Red Hat subscription management およびその他の機能をサポートする追加の Vagrant プラグインのインストール。
  6. 複数の異なる Vagrantfile ファイルのいずれかを使用して Vagrant box を起動します。

4.1.1. 前提条件

Fedora または Red Hat Enterprise Linux システムで Red Hat CDK を実行する準備をするには、以下が必要です。

  • 最小 4 GB の RAM を搭載した 64 ビットマシン
  • 仮想マシンイメージの最小 3 GB の空きディスク領域。セットアッププロセスで、各仮想マシンイメージの複数のコピーを保存できるようにする必要があります。
  • 1—​2 GB のソフトウェアをダウンロードするための適切なインターネット接続。
  • サポート付きの利用可能な Red Hat Enterprise Linux Server サブスクリプションまたは Red Hat Enterprise Linux Developer Suite。セルフサポート付きの Red Hat Enterprise Linux サブスクリプションには、すべての環境での CDK に必要なすべてのソフトウェアへのアクセスがありません。

4.1.2. 仮想化および Red Hat CDK コンポーネントのインストール

Vagrant は Red Hat CDK の必要なすべてのコンポーネントが組み込まれた Red Hat Enterprise Linux 仮想マシンを実行するために使用されます。仮想化は、ネイティブの Linux Kernel ベースの仮想マシン (KVM) ハイパーバイザーおよび libvirt、API および仮想マシンを管理するためのツールセットを使用して提供されます。

Vagrant プラグインは、Vagrant 仮想化プロバイダーの 1 つとして libvirt の使用を可能にするためにインストールされます。KVM および libvirt に馴染みがない場合は、Fedora Virtualization Getting Started Guide を参照してください。

Fedora または Red Hat Enterprise Linux 開発ホストに必要なソフトウェアをインストールし、設定を実行するには root である必要があります。Vagrant および libvirtがインストールされ、適切に設定されると、通常の root 以外のユーザーとして準備が完了できます。通常のユーザー ID を使用して Vagrant box を開始し、停止し、設定することができます。

Vagrant を実行する際には同じユーザー ID を使用するようにしてください。別のユーザー ID に変更する場合は、Vagrant はプラグインやダウンロードされた box イメージなどの設定コンポーネントをユーザーのホームディレクトリーに保存するため (~/.vagrant.d)、Vagrant プラグインおよび box をインストールする手順を繰り返す必要があります。

ファイル権限に関する問題の発生を避けるため、root ユーザーでログインしている場合は Vagrant を実行しないでください。

4.1.2.1. ソフトウェアのインストールおよびホストシステムの設定

仮想化ソフトウェアおよび必要な設定を Red Hat Enterprise Linux または Fedora ホストシステムにインストールするには、以下のステップを root で実行しておく必要があります。

  1. これをまだ実行していない場合は、Fedora Workstation または Red Hat Enterprise Linux (Server または Workstation) をハードウェア (またはハイパーバイザーとして機能するように設定されている仮想マシン) にインストールします。
  2. ターミナルセッションを開き、su - コマンドを使用して root 権限を取得し、Vagrant をインストールして Vagrant box を実行するための開発ホストを設定します。

    $ su -
  3. お使いのホストシステム (Red Hat Enterprise Linux のみ) のサブスクライブを行います。ホストが Red Hat Enterprise Linux システムの場合、(Red Hat ユーザー名およびパスワードを使用して) そのホストシステムのサブスクライブを行い、複数のソフトウェアリポジトリーを有効にします。(これらのコマンドは Fedora システムでは不要です。) 以下は例になります。

    # subscription-manager register --auto-attach --username=user --password=passwd
    # subscription-manager repos --enable rhel-variant-rhscl-7-rpms
    # subscription-manager repos --enable rhel-7-variant-optional-rpms

    上記の例では、使用している Red Hat Enterprise Linux のバリアントに応じて、variantserver または workstation に置き換えます。Red Hat Software Collections リポジトリーが利用できない場合は、そのリポジトリーを含む特定のプール ID を使ってサブスクライブする必要があるかもしれません。

  4. CentOS SCLO リポジトリー (Red Hat Enterprise Linux のみ) を有効にします。Vagrant は Red Hat Enterprise Linux 用に正式にパッケージ化されていないため、CentOS 用にパッケージ化された Software Collection を使用してインストールされる必要があります。(これは Fedora システムでは不要です。) Vagrant Software Collection を含むリポジトリーを有効にするには、以下のコマンドを実行して、次のようにリポジトリーの GPG チェックを無効にします。

    # yum-config-manager --add-repo=http://mirror.centos.org/centos-7/7/sclo/x86_64/sclo/
    # echo "gpgcheck=0" >> /etc/yum.repos.d/mirror.centos.org_centos-7_7_sclo_x86_64_sclo_.repo
  5. システムを更新します。更新時に新規のカーネルがインストールされる場合、システムを再起動してから残りのステップに進みます。このステップは、Red Hat Enterprise Linux と Fedora では異なります。

    Fedora システム:

    # dnf -y update

    Red Hat Enterprise Linux システム:

    # yum -y update
  6. 仮想化ソフトウェア KVM およびlibvirt のインストールし、初期化します。

    Fedora システム:

    # dnf install @Virtualization

    Red Hat Enterprise Linux システム:

    # yum groupinstall -y "Virtualization Host"
  7. libvirt デーモンを起動し、ブート時に起動するように設定します。

    # systemctl start libvirtd
    # systemctl enable libvirtd
  8. Vagrant をインストールします。vagrant-registration および vagrant-libvirt プラグインを含め、すべての Vagrant およびその他の必要なパッケージをインストールします。

    Fedora システム:

    # dnf install vagrant vagrant-libvirt vagrant-libvirt-doc vagrant-registration rubygem-ruby-libvirt

    Red Hat Enterprise Linux システム:

    # yum install sclo-vagrant1 sclo-vagrant1-vagrant-libvirt \
      sclo-vagrant1-vagrant-libvirt-doc sclo-vagrant1-vagrant-registration
  9. 通常のユーザー ID が Vagrant box を開始し、停止できるようにします。vagrant グループのユーザーが libvirt で VM をコントロールできるようにするため、PolicyKit ルールを追加します。必要なルールは、インストールした vagrant パッケージのいずれかに組み込まれます。以下のコマンドのいずれか (ホストが RHEL または Fedora システムであるかによって異なる) を実行して、システム上にルールを追加します。

    Fedora システム:

    # cp /usr/share/vagrant/gems/doc/vagrant-libvirt-0.0.30/polkit/10-vagrant-libvirt.rules /etc/polkit-1/rules.d

    Red Hat Enterprise Linux システム:

    # cp /opt/rh/sclo-vagrant1/root/usr/share/vagrant/gems/doc/vagrant-libvirt-0.0.30/polkit/10-vagrant-libvirt.rules /etc/polkit-1/rules.d

    以下は、参照用の新規に作成された /etc/polkit-1/rules.d/10-vagrant-libvirt.rules ルールの内容であり、追加する場合は手動で行ってください。

    /*
     * Allow users in vagrant group to manage libvirt without authentication.
     * Copy this file to /usr/share/polkit-1/rules.d/ to activate.
     */
    polkit.addRule(function(action, subject) {
      if ((action.id == "org.libvirt.unix.manage"
        || action.id == "org.libvirt.unix.monitor")
        && subject.isInGroup("vagrant")) {
        return polkit.Result.YES;
      }
    });
  10. 変更を有効にするために、libvirt および PolicyKit サービスを再起動します。

    # systemctl restart libvirtd
    # systemctl restart polkit
  11. ユーザー ID を vagrant グループに追加します。

    # echo $USER # (If you have switched to root, $USER should be your non-root user id)
    # usermod -a -G vagrant $USER

    グループメンバーシップへの変更を有効にするために、ログアウトしてから再びログインする必要があることに注意してください。

  12. ディレクトリーを共有するために NFS を使う予定の場合、そのエクスポートを一覧表示して NFS サーバーが利用可能であることを確認してください。

    # showmount --exports

    NFS エクスポートの一覧は、NFS を以前に使ったことがなく、ディレクトリーをエクスポートしていない限り、空になります。Vagrant は、Vagrant box を立ち上げるか、またはこれを停止する場合に必要なエクスポートを自動的に追加し、削除します。

    RPC: timed out」のエラーメッセージが出される場合、 これは Vagrant がファイルの同期のために NFS を使用することを試みましたが、NFS サーバーとの接続を設定できなかったことを示します。これを解決するには、NFS サーバーと RPC サービスが実行中であることを確認します。NFS サーバーおよび RPC サービスが実行中の場合、アクセスが妨害されているかどうかを確認するために、ファイアウォールを無効にしてみます。

  13. root シェルを終了します。

    # exit

これにより、root で実行する必要のある一連のステップが完了します。

4.1.3. Red Hat CDK ソフトウェアコンポーネントのセットアップ

残りのステップは、通常の root 以外のユーザー ID で実行する必要があります。これは、vagrant グループに追加したのと同じユーザー ID である必要があります。

  1. ターミナルセッションを開始し、vagrant グループのメンバーであることを確認します。

    $ id | egrep vagrant
  2. Vagrant Software Collection を有効にして、Vagrant を通常の root 以外のユーザーとして実行するための設定が行われていることを確認します。

    Red Hat Enterprise Linux システム:

    $ scl enable sclo-vagrant1 bash
    $ vagrant global-status

    Fedora システム:

    $ vagrant global-status

    global-status コマンドにより、このコンピューターにはアクティブな Vagrant 環境がないことを示すメッセージが生成されます。

  3. Red Hat CDK ソフトウェアコンポーネントを Red Hat Product Downloads web サイト からダウンロードします。以下のアイテムをダウンロードする必要があります。

    • Red Hat Container Tools
    注記

    ダウンロードページは VirtualBox などの他の仮想化プラットフォーム用にフォーマットされた Vagrant .box ファイルを提供します。libvirt など、使用している仮想化に一致する .box イメージのみをダウンロードする必要があります。

    以下の手順では、これらのファイルをホームディレクトリーの ~/Downloads に保存していることを想定しています。別のディレクトリーを使用している場合、パスを適宜調整してください。Vagrant box イメージ用に数ギガバイトの空き領域が必要です。

  4. ホームディレクトリーにダウンロードした ZIP ファイルを解凍します。これにより、~/cdk サブディレクトリーが作成されるはずです。

    $ cd
    $ unzip ~/Downloads/cdk*.zip

    この時点で、組み込まれている README ファイルを確認して Red Hat Container Tools に精通し、インストールガイドの公開後の変更について確認できるようにします。各 Vagrantfile に関連付けられた README ファイルはテキストファイルで表示できます。プラグイン README ファイルはマークダウン形式で作成されます。そのため、これらのファイルを効果的に使用するにはマークダウンリーダーが必要になる可能性があります。

  5. vagrant-adbinfo および landrush プラグインをインストールします (プラグインは ZIP ファイルに含まれる .gem ファイルの形式です)。

    $ cd ~/cdk/plugins/
    $ vagrant plugin install vagrant-adbinfo landrush
  6. 以下のコマンドを実行して、vagrant-libvirtvagrant-registrationlandrush および vagrant-adbinfo プラグインが適切にインストールされていることを確認します (vagrant-registration プラグインは Installing Software の別の RPM パッケージとしてすでにインストールされているため、ZIP ファイルで提供されているプラグインを使用する必要がないことに注意してください)。

    $ vagrant plugin list
    landrush (0.18.0.cdk)
    vagrant-adbinfo (0.1.0)
    vagrant-libvirt (0.0.30, system)
    vagrant-registration (1.1.0.cdk, system)
  7. Red Hat Enterprise Linux Server box を Vagrant に追加します。これは、直前のステップのいずれかでダウンロードした設定済みの仮想マシンイメージです。コンテナーの開発およびテスト用にこれを使用します。

    $ vagrant box add --name cdkv2 ~/Downloads/rhel-cdk-kubernetes-7.2-13.x86_64.vagrant-libvirt.box

    Vagrant box を初期化するために Vagrantfile を使用する予定の場合、上記のステップで --name パラメーターを使用して box に割り当てる名前は、box を参照するために Vagrantfile が使用する名前に対応している必要があります。デフォルトでは、この名前は cdkv2 になります。

    box がインストールされていることを確認します。

    $ vagrant box list

    box イメージファイルはホームディレクトリーの ~/.vagrant.d に保存されます。約 2 GB の十分な領域が必要になります。

4.1.4. Red Hat CDK Vagrant Box の起動

Vagrant box および Vagrantfile を配置したら、選択した Vagrant box を起動する準備ができます。事前に定義された Vagrantfile を使用して box を初期化するか、または単に box を初期化してから独自の Vagrant ファイルを作成することができます。

既存の Vagrantfile を使用するには、使用する Vagrantfile のあるディレクトリーに移動し、そこから vagrant up コマンドを実行して Red Hat Enterprise Linux CDK の Vagrant box を起動します。3 つの異なる Vagrantfile が以下のユースケース用に Red Hat Container Tools ZIP ファイルで提供されます (または独自の Vagrantfile を作成することもできます)。

  • Docker-Eclipse 統合 (rhel-docker-eclipse) の開始

    $ cd ~/cdk/components/rhel/rhel-docker-eclipse/
    $ vagrant up
  • 単一ノード Kubernetes セットアップ (rhel-k8s-singlenode-setup) の開始

    $ cd ~/cdk/components/rhel/rhel-k8s-singlenode-setup/
    $ vagrant up
  • OpenShift Enterprise 統合 (rhel-ose) の開始

    $ cd ~/cdk/components/rhel/rhel-ose/
    $ vagrant up
  • Vagrant box および新規の Vagrantfile の初期化 (独自に作成)

    $ mkdir ~/mycdkv2
    $ cd ~/mycdkv2
    $ vagrant init cdkv2
    $ vagrant up

この時点までに問題がないと、システムを登録し、Red Hat リポジトリーからのRPM ソフトウェアパッケージのダウンロードを有効にするために Red Hat subscription management のユーザー名とパスワードの入力が求められます。以下のオプションを選択できます。

  • すぐに RHEL VM を登録する (推奨)
  • 後で RHEL VM を登録する

    注意: RHEL サブスクリプションの取得方法、CDK に関連する登録方法、およびシステムの登録が必要な理由の詳細は「Using the CDK (CDKの使用)」を参照してください。

すぐにシステムを登録するには、Red Hat カスタマーポータル で使用するユーザー名とパスワードを入力します。

==> default: Registering box with vagrant-registration…
    default: Would you like to register the system now (default: yes)? [y|n] y
    default: Subscriber username: <username>
    default: Subscriber password:

vagrant status コマンドを使用して Vagrant box が実行中であるかどうかを確認できます。Vagrant ファイルが置かれているのと同じディレクトリーにいる必要があることに注意してください。

$ cd ~/cdk/components/rhel/rhel-docker-eclipse/
$ vagrant status

マシンの状態が実行中であると表示されたら、Red Hat CDK を使用し始めることができます。以下を参照してください。

  • 「Using the CDK (CDKの使用)」の章は、CDK の使用に必要な各種の Vagrantfile、プラグインおよびインターフェースを理解するのに役立ちます。さらに、RHEL 仮想マシンを登録する方法などの特定のトピックについて説明しています。
  • コンテナー開発を開始する方法の詳細は、『Red Hat Container Development Kit Getting Started Guide』を参照してください。