Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第7章 KVM サーバー (libvirt) での仮想マシンのプロビジョニング

カーネルベースの仮想マシン (KVM) はオープンソースの仮想化デーモンおよび Red Hat Enterprise Linux で実行される libvirt という API を使用します。Red Hat Satellite 6 は KVM サーバーで libvirt API に接続でき、ハイパーバイザーにホストをプロビジョニングし、特定の仮想化機能を制御することができます。本章では、ACME の KVM サーバーに接続を追加し、仮想マシンのプロビジョニングを実行します。

7.1. KVM プロビジョニングの要件定義

KVM プロビジョニングの要件には以下が含まれます。

  • Red Hat Enterprise Linux 7 の同期済みのコンテンツリポジトリー。詳細は、『コンテンツ管理ガイド』「Red Hat リポジトリーの同期」 を参照してください。
  • KVM サーバーでネットワークを管理する Capsule Server。Capsule Server との競合を避けるためにその他の DHCP サービスがこのネットワーク上で実行されていないことを確認します。Capsule Server のネットワークサービス設定の詳細は、4章ネットワークの設定 を参照します。
  • ホスト登録のためのアクティべーションキーのサンプル。詳細は、「アクティベーションキーの作成」 を参照してください。
  • KVM 仮想化ツールを実行する Red Hat Enterprise Linux サーバー。詳細は、『Red Hat Enterprise Linux 7 仮想化スタートガイド』 を参照してください。
  • 既存の仮想マシンイメージ (イメージベースのプロビジョニングを使用する場合) 。このイメージが KVM ホストのストレージプールにあることを確認します。デフォルトの ストレージプールは通常 /var/lib/libvirt/images にあります。

7.2. Satellite Server での KVM 接続の設定

KVM 接続を追加する前に、Satellite Server には安全な接続を確認するための設定が必要になります。つまり、接続を実行するユーザーである Foreman ユーザー用に SSH キーペアを作成する必要があります。

Satellite Server で Foreman ユーザーに切り替えます。

# su foreman -s /bin/bash

キーペアを生成します。

$ ssh-keygen

公開キーを KVM サーバーにコピーします。以下は例になります。

$ ssh-copy-id root@kvm.example.com

以下のコマンドを使用して、KVM サーバーへの接続をテストします。

$ virsh -c qemu+ssh://root@kvm.example.com/system list

Satellite Server で KVM 接続を追加する場合、qemu+ssh プロトコルおよびサーバーのアドレスを使用します。たとえば、qemu+ssh://root@kvm.example.com/system のようになります。

7.3. Satellite Server への KVM 接続の追加

このプロセスでは、Satellite Server のコンピュートリソースで KVM 接続を追加します。

Web UI を使用する場合

インフラストラクチャー > コンピュートリソース に移動し、新規のコンピュートリソース をクリックします。UI には、コンピュートリソースの一連のフィールドがあります。

  • 名前: リソースのテキスト形式の名前。例: ACME's KVM Server
  • プロバイダー: コンピュートリソースプロバイダーを選択するためのフィールド。Libvirt を選択すると、新規のフィールドのセットが表示されます。
  • 説明: リソースのテキスト形式の説明。例: KVM server at kvm.example.com
  • URL: KVM サーバーへの libvirt 接続 URL。例: qemu+ssh://root@kvm.example.com/system
  • ディスプレイタイプ: 使用するリモートアクセスプロトコルを選択します (VNC または Spice のいずれか)。
  • コンソールのパスワード: ランダムに生成されたパスワードで新規ホストのコンソールアクセスのセキュリティーを保護します。

テスト接続 をクリックして Satellite Server が KVM サーバーに問題なく接続できることを確認します。

ロケーション および 組織 タブは現在のコンテキストに自動的に設定されます。他のコンテキストをこれらのタブに追加します。

送信 をクリックして KVM 接続を保存します。

CLI を使用する場合

hammer compute-resource create コマンドで接続を作成します。

# hammer compute-resource create --name "ACME's KVM Server" \
--provider "Libvirt" --description "KVM server at kvm.example.com" \
--url "qemu+ssh://root@kvm.example.com/system" --locations "New York" \
--organizations "ACME"

7.4. Satellite Server での KVM イメージの追加

イメージベースのプロビジョニングを使用して新規ホストを作成する場合、イメージの詳細を Satellite Server に追加する必要があります。これには、アクセスの詳細およびイメージの場所が含まれます。

Web UI を使用する場合

インフラストラクチャー > コンピュートリソース に移動し、KVM 接続の名前をクリックします。UI には、イメージ タブを含む接続についての情報が表示されます。このタブには、新規プロバイダーのイメージは含まれませんが、新規イメージを追加することができます。新規イメージ をクリックすると、UI に KVM イメージの一連のフィールドが表示されます。

  • 名前: イメージのテキスト形式の名前。例: Test KVM Image
  • オペレーティングシステム: イメージのベースオペレーティングシステムを選択するためのフィールド。例: RedHat 7.2
  • アーキテクチャー: オペレーティングシステムのアーキテクチャーを選択するためのフィールド。例: x86_64
  • ユーザー名: イメージにアクセスするための SSH ユーザー名。通常、これは root ユーザーになります。
  • パスワード: イメージにアクセスするための SSH パスワード。
  • ユーザーデータ - イメージが cloud-init データなどのユーザーデータ入力をサポートするかどうかを設定します。
  • イメージパス: KVM サーバーのイメージを指す完全パス。例: /var/lib/KVM/images/TestImage.qcow2

送信 をクリックしてイメージの詳細を保存します。

CLI を使用する場合

hammer compute-resource image create コマンドでイメージを作成します。--uuid フィールドを使用して KVM サーバー上のイメージの場所の完全パスを保存します。

# hammer compute-resource image create --name "Test KVM Image" \
--operatingsystem "RedHat 7.2" --architecture "x86_64" --username root \
--user-data false --uuid "/var/lib/libvirt/images/TestImage.qcow2" \
--compute-resource "ACME's KVM Server"

7.5. KVM の詳細をコンピュートプロファイルへ追加

KVM ベースの仮想マシンの特定のハードウェア設定を事前に定義することができます。これは、これらのハードウェア設定をコンピュートプロファイルに追加して実行できます。この例では、「コンピュートプロファイルの作成」 で作成した 4-Example プロファイルにいくつかの基本的なハードウェア設定を組み込みます。

Web UI を使用する場合

インフラストラクチャー > コンピュートプロファイル に移動し、プロファイルの名前をクリックします。たとえば、「コンピュートプロファイルの作成」 で事前に作成した 4-Example プロファイルを使用します。UI には、コンピュートリソースの一覧が表示されます。KVM 接続をクリックします。

UI には、プロファイルに KVM 固有の詳細を入力できる一連のフィールドがあります。これには以下が含まれます。

  • CPU: 新規ホストに割り当てる CPU の数。
  • メモリー: 新規ホストに割り当てるメモリーの容量。
  • イメージ: イメージベースのプロビジョニングを実行する際に使用するイメージ。この例では、Test KVM Image を使用します。
  • ネットワークインターフェース - ホストのネットワークインターフェースの KVM ネットワークパラメーター。複数のネットワークインターフェースを作成することができます。ただし、少なくとも 1 つのインターフェースが Capsule で管理されるネットワークをポイントしている必要があります。ネットワークインターフェースのオプションには、以下が含まれます。

    • ネットワークタイプ - ホストおよび NIC のネットワークのタイプ。これは、物理 (ブリッジ) または 仮想 (Nat) のいずれかになります。
    • ネットワーク: ネットワークタイプ の選択内容により、使用するホストの物理インターフェースか、または KVM サーバー上の仮想ネットワークのいずれかになります。
    • NIC タイプ - virtio などの仮想 NIC タイプ。
  • ストレージ - ホストのボリューム。ホストに複数のボリュームを作成することができます。ストレージのオプションには以下が含まれます。

    • ストレージプール - ボリュームを含む KVM サーバーのプール。
    • サイズ - ボリュームのサイズ (GB)。
    • 割り当て - ボリュームに事前に割り当てられた物理スペースのサイズ。
    • タイプ - ボリュームのタイプ。RAW または QCOW2 のいずれかになります。

送信 をクリックしてコンピュートプロファイルを保存します。

CLI を使用する場合

コンピュートプロファイルの CLI コマンドは、Red Hat Satellite 6.3 ではまだ実装されていません。代替方法として、ホストの作成プロセスで同じ設定を直接組み込むことができます。

7.6. KVM サーバーでのネットワークベースのホストの作成

KVM プロビジョニングプロセスは、ネットワーク接続を介して新規ホストを作成するオプションを提供します。この場合、新規ホストは Satellite Server の統合 Capsule または KVM 仮想ネットワークの外部 Capsule Server のいずれかにアクセスする必要があります。これは、ホストが PXE プロビジョニングサービスにアクセスできるようにするためです。

重要

プロビジョニングのために仮想ネットワークを KVM サーバーで使用している場合、DHCP 割り当てを提供しないネットワークを選択します。そうしないと、新規ホストの起動時に Satellite Server と DHCP との競合が生じるからです。

Web UI を使用する場合

ホスト > 新規ホスト に移動します。UI には、ホストの詳細を入力できる一覧のフィールドがあります。

  • ホスト タブ:

    • ホストの 名前 を入力します。これは、プロビジョニングされたシステムのホスト名になります。この例では、kvm-test1 になります。
    • プロビジョニングコンテキスト (組織 および ロケーション) は現在のコンテキストに自動的に設定されます。例: ACME および New York
    • ホストグループ フィールドから Base を選択します。これにより、新規ホストのほとんどのフィールドが自動的に設定されます。
    • デプロイ先 で、KVM 接続を選択します。この例では、ACME's KVM Server になります。仮想マシンの新規タブが表示されます。
    • コンピュートプロファイル で、仮想マシンベースの設定を自動的に行うために使用するプロファイルを選択します。例: 4-Example
  • インターフェース タブ:

    • ホストのインターフェースの 編集 をクリックします。
    • ほとんどのフィールドには、値が自動的に含まれるはずです。特に以下の点に注意してください。

      • ホスト タブの 名前DNS 名 になります。
      • Satellite Server は新規ホストの IP アドレスを自動的に割り当てます。
    • MAC アドレス を空白にします。KVM サーバーは MAC アドレスをホストに割り当てます。
    • Satellite Server は、ホストの最初のインターフェースで Managed (管理)Primary、および Provision オプションを自動的に選択するはずです。選択されていない場合は、それらを選択してください。
    • インターフェース画面には、コンピュートプロファイルの設定が入力された KVM 固有のフィールドが表示されます。必要に応じてこれらの設定を変更します。
  • オペレーティングシステム タブ:

    • すべてのフィールドには値が自動的に含まれるはずです。オペレーティングシステムの各要素を確認してください。
    • プロビジョニング方法ネットワークベース に設定されていることを確認します。
    • プロビジョニングテンプレート解決 をクリックし、新規ホストから使用する適切なプロビジョニングテンプレートを特定できることを確認します。
  • 仮想マシン タブ:

    • これらの設定には、選択されたホストグループおよびコンピュートプロファイルの詳細が入力されているはずです。必要に応じてこれらの設定を変更します。
  • パラメーター タブ:

    • kt_activation_keys パラメーターが存在し、サンプルのアクティべーションキーを使用していることを確認します。

送信 をクリックします。

CLI を使用する場合

hammer host create コマンドでホストを作成し、--provision-method build を組み込んでネットワークベースのプロビジョニングを使用します。以下は例になります。

# hammer host create --name "kvm-test1" --organization "ACME" \
--location "New York" --hostgroup "Base" \
--compute-resource "ACME's KVM Server" --provision-method build \
--build true --enabled true --managed true \
--interface "managed=true,primary=true,provision=true,compute_type=network,compute_network=acmenetwork" \
--compute-attributes="cpus=1,memory=1073741824" \
--volume="pool_name=default,capacity=20G,format_type=qcow2"
注記

このコンピュートリソースの追加のホスト作成パラメーターについての詳細は、付録B Hammer CLI の追加のホストパラメーター を参照してください。

新規ホストのエントリーは、KVM サーバーが仮想マシンを作成し、これを開始するようにトリガーします。仮想マシンが仮想ネットワーク経由で定義済みの Capsule Server を検出する場合、仮想マシンは PXE で起動し、選択したオペレーティングシステムのインストールを開始します。

7.7. KVM サーバーでのイメージベースのホストの作成

KVM プロビジョニングプロセスは、KVM サーバーで既存イメージから新規ホストを作成するオプションも提供します。

Web UI を使用する場合

ホスト > 新規ホスト に移動します。UI には、ホストの詳細を入力できる一覧のフィールドがあります。

  • ホスト タブ:

    • ホストの 名前 を入力します。これはプロビジョニングされたシステムのホスト名になります。この例では、kvm-test2 と入力します。
    • プロビジョニングコンテキスト (組織 および ロケーション) は ACME および New York に自動的に設定されます。
    • ホストグループ フィールドから Base を選択します。これにより、新規ホストのほとんどのフィールドが自動的に設定されます。
    • デプロイ先 で、KVM 接続を選択します。この例では、ACME's KVM Server になります。仮想マシンの新規タブが表示されます。
    • コンピュートプロファイル で、仮想マシンベースの設定を自動的に行うために使用するプロファイルを選択します。例: 4-Example
  • インターフェース タブ:

    • ホストのインターフェースの 編集 をクリックします。
    • ほとんどのフィールドには、値が自動的に含まれるはずです。特に以下の点に注意してください。

      • ホスト タブの 名前DNS 名 になります。
      • Satellite Server は新規ホストの IP アドレスを自動的に割り当てます。
    • MAC アドレス を空白にします。KVM サーバーは MAC アドレスをホストに割り当てます。
    • Satellite Server は、ホストについて Managed (管理)Primary、および Provision オプションを自動的に選択するはずです。選択されていない場合は、それらを選択してください。
    • インターフェース画面には、コンピュートプロファイルの設定が入力された KVM 固有のフィールドが表示されます。必要に応じてこれらの設定を変更します。
  • オペレーティングシステム タブ:

    • すべてのフィールドには値が自動的に含まれるはずです。オペレーティングシステムの各要素を確認してください。
    • プロビジョニング方法イメージベース に設定されていることを確認します。新規の イメージ フィールドが表示されます。このフィールドから、新規ホストの root ボリュームのベースとしてイメージを選択できます。これは、ホスト タブで選択されたコンピュートプロファイルから自動的に設定されます。
    • プロビジョニングテンプレート解決 をクリックし、新規ホストから使用する適切なプロビジョニングテンプレートを特定できることを確認します。
  • 仮想マシン タブ:

    • これらの設定には、選択されたホストグループおよびコンピュートプロファイルの詳細が入力されているはずです。必要に応じてこれらの設定を変更します。
  • パラメーター タブ:

    • kt_activation_keys パラメーターが存在し、サンプルのアクティべーションキーを使用していることを確認します。

送信 をクリックします。

CLI を使用する場合

hammer host create コマンドでホストを作成し、--provision-method image を組み込んでイメージベースのプロビジョニングを使用します。以下は例になります。

# hammer host create --name "kvm-test2" --organization "ACME" \
--location "New York" --hostgroup "Base" \
--compute-resource "ACME's KVM Server" --provision-method image \
--image "Test KVM Image" --enabled true --managed true \
--interface "managed=true,primary=true,provision=true,compute_type=network,compute_network=acmenetwork" \
--compute-attributes="cpus=1,memory=1073741824" \
--volume="pool_name=default,capacity=20G,format_type=qcow2"
注記

このコンピュートリソースの追加のホスト作成パラメーターについての詳細は、付録B Hammer CLI の追加のホストパラメーター を参照してください。

新規ホストのエントリーは、KVM サーバーが新規ボリュームのベースとして既存イメージを使用し、仮想マシンを作成するようトリガーします。

7.8. noVNC コンソールの設定

以下の手順に従い、KVM サーバーおよびブラウザーを設定して NoVNC コンソールを使用できるようにします。

作業を開始する前の注意事項

noVNC コンソールを設定するには、以下の手順を実行します。

  1. KVM ホストシステムで、VNC サービスをポート 5900 から 5930 まで許可するようにファイアウォールを設定します。

    • Red Hat Enterprise Linux 6 の場合:

      # iptables -A INPUT -p tcp --dport 5900:5930 -j ACCEPT
      # service iptables save
    • Red Hat Enterprise Linux 7 の場合:

      # firewall-cmd --add-port=5900-5930/tcp
      # firewall-cmd --add-port=5900-5930/tcp --permanent
  2. Firefox ブラウザーで、Satellite Server のパブリックダウンロードページ (例: https://satellite.example.com/pub/) に移動し、証明書ファイル katello-server-ca.crt をクリックします。

    1. 表示 をクリックして CA 証明書を開きます。
    2. 発行済み 一覧で、コモンネーム (CN) が Satellite Server の FQDN であることを確認し、閉じる をクリックします。
    3. この CA を信頼して Website を特定 を選択し、OK をクリックします。
  3. Firefox ブラウザーで、HTTP Strict Transport Security (HSTS) を無効にします。たとえば、ブラウザーのアドレスバーに About:Config と入力し、以下のブール値を True に設定します。

        network.websocket.allowInsecureFromHTTPS

    HSTS に関する詳細情報は、HTTP Strict Transport Security (HSTS) を参照してください。

  4. Satellite Web UI で、インフラストラクチャー > コンピュートリソース に移動し、Libvirt リソースの名前を選択します。
  5. 仮想マシン タブで、Libvirt ゲストの名前を選択します。マシンの電源がオンになっていることを確認してから、コンソール を選択します。

コンソールウィンドウは noVNC ハンドシェイクの完了後に表示されます。

7.9. 本章のまとめ

本章では、Red Hat Satellite 6 を設定して KVM サーバーを使用する方法と、KVM サーバーを使用して新規ホストをプロビジョニングする方法を説明しました。ここでは、ネットワークベースのホストおよびイメージベースのホストの両方について紹介しました。

Red Hat Satellite 6 で設定が必要なコンピュートリソースが他にない場合は、13章プロビジョニングの最終設定 のプロビジョニングについての最終メモを参照してください。

次章では、Red Hat Virtualization 環境からのプロビジョニング方法について説明します。