7.2. Red Hat Enterprise Virtualization Hypervisor ISO への変更

7.2.1. Red Hat Enterprise Virtualization Hypervisor ISO への変更について

Red Hat Enterprise Virtualization Hypervisor は、最小構成のクローズ型オペレーティングシステムとして設計されていますが、edit-node ツールを使用して Red Hat Enterprise Virtualization Hypervisor ISO ファイルに変更を加え、特定の要件に対応することができます。このツールは、livecd ベースの ISO ファイルからファイルシステムを抽出して、イメージのさまざまな部分 (例: ユーザーパスワードや SSH キー、含まれているパッケージなどの) に変更を加えます。

重要

変更を加えた場合には、Hypervisor をアップグレードする前に Red Hat Enterprise Virtualization Hypervisor ISO ファイルの新規バージョンに対して同じ変更を毎回繰り返す必要があります。

警告

edit-node ツールを使用して変更を加えた Red Hat Enterprise Virtualization Hypervisor に問題が発生した場合には、トラブルシューティングのプロセスの一環として、変更を加えていないバージョンで問題の再現性を確認する必要がある場合があります。

7.2.2. edit-node ツールのインストール

edit-node ツールは Red Hat Enterprise Virtualization Hypervisor リポジトリーで提供されている ovirt-node-tools パッケージに含まれています。

手順7.2 edit-node ツールのインストール

  1. Red Hat Enterprise Virtualization Hypervisor ISO ファイルへの変更を行うシステムにログインします。
  2. 必要なリポジトリーを有効にします。
    • Red Hat Enterprise Linux 6 の場合
      # subscription-manager repos --enable=rhel-6-server-rhevh-rpms
    • Red Hat Enterprise Linux 7 の場合
      # subscription-manager repos --enable=rhel-7-server-rhevh-rpms
  3. ovirt-node-tools パッケージをインストールします。
    # yum install ovirt-node-tools
Red Hat Enterprise Virtualization Hypervisor ISO ファイルに変更を加えるのに必要な edit-node ツールのインストールが完了しました。次のセクションに進んで、ツールの使用方法を参照してください。

7.2.3. edit-node ツールの構文

edit-node ツールでは以下のような基本オプションを使用することができます。

edit-node ツールのオプション

--name=image_name
変更を加えるイメージの名前を指定します。
--output=directory
編集する ISO の保存先ディレクトリーを指定します。
--kickstart=kickstart_file
キックスタート設定ファイルのパスまたは URL と名前を指定します。
--script=script
イメージ内で実行するスクリプトのパスと名前を指定します。
--shell
イメージの編集に使用する対話型シェルを開きます。
--passwd=user,encrypted_password
指定の user のパスワードを定義します。このオプションは、MD5 で暗号化されたパスワードの値に対応しています。--password パラメーターを複数回指定して、複数のユーザーを変更することができます。ユーザーを指定しない場合は、デフォルトユーザーは admin です。
--sshkey=user,public_key_file
指定のユーザーの公開鍵を指定します。このオプションを複数回指定して、複数のユーザーの鍵を指定することができます。ユーザーが指定されていない場合は、デフォルトのユーザーは admin です。
--uidmod=user,uid
指定のユーザーのユーザー ID を指定します。このオプションを複数回指定して、複数のユーザーの ID を指定することができます。
--gidmod=group,gid
指定のグループのグループ ID を指定します。このオプションを複数回指定して、複数のグループの ID を指定することができます。
--tmpdir=temporary_directory
使用するローカルファイルシステムの一時ディレクトリーを指定します。デフォルトでは、この値は /var/tmp です。
--releasefile=release_file
ブランディングに使用するリリースファイルのパスと名前を指定します。
--builder=builder
リミックスのビルダーを指定します。
--install-plugin=plugin
イメージにインストールするプラグインの一覧を指定します。プラグイン名をコンマで区切ると、複数のプラグインを指定することができます。
--install=package
イメージにインストールするパッケージの一覧を指定します。パッケージ名をコンマで区切ると、複数のパッケージを指定することができます。
--install-kmod=package_name
yum リポジトリーまたは指定の .rpm ファイルから、指定のドライバー更新パッケージをインストールします。指定の .rpm ファイルは、ホワイトリストに登録された場所 (kmod 固有の領域) に配置されている場合にのみ有効です。
--repo=repository
--install-* オプションと共に使用する yum リポジトリーを指定します。指定できる値は、ローカルディレクトリー、yum リポジトリーファイル (.repo) またはドライバーディスク .iso ファイルのいずれかです。
--nogpgcheck
yum install の段階に GPG キーの認証を省略します。このオプションにより、署名されていないパッケージをインストールすることができます。

edit-node ツールのマニフェストオプション

--list-plugins
イメージに追加するプラグインの一覧を出力します。
--print-version
/etc/system-release から現在のバージョン情報を出力します。
--print-manifests
ISO ファイル内のマニフェストファイルの一覧を出力します。
--print-manifest=manifest
指定のマニフェストファイルを出力します。
--get-manifests=manifest
ISO ファイル内のマニフェストファイルの .tar ファイルを作成します。
--print-file-manifest
ISO ファイル上にある rootfs の内容を出力します。
--print-rpm-manifest
ISO ファイル上にある rootfs 内のインストール済みパッケージの一覧を出力します。

edit-node ツールのデバッグオプション

--debug
edit-node コマンドの実行時にデバッグ情報を出力します。
--verbose
edit-node コマンドの進捗状況に関する詳しい情報を出力します。
--logfile=logfile
デバッグ情報の出力先ファイルのパスと名前を指定します。

7.2.4. パッケージの追加と更新

edit-node ツールを使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイルに新規パッケージを追加したり、既存のパッケージを更新したりすることができます。単一のパッケージを追加または更新するには、必要なパッケージおよびその依存関係用のリポジトリーとして機能するローカルのディレクトリーを設定するか、パッケージとその依存関係を提供する 1 つまたは複数のリポジトリーを定義するリポジトリー定義ファイルの場所に edit-node ツールをポイントする必要があります。複数のパッケージを追加または更新するには、パッケージとその依存関係を提供する 1 つまたは複数のリポジトリーを定義するリポジトリー定義ファイルの場所に edit-node ツールをポイントする必要があります。

注記

リポジトリー定義ファイルにローカルリポジトリーの定義を記載する場合には、そのリポジトリーのソースとして機能するディレクトリーは Web サーバーまたは FTP サーバーで公開する必要があります。たとえば、http://localhost/myrepo/ftp://localhost/myrepo/ のようなリンクでリポジトリーにアクセスが可能である必要があります。

重要

edit-node ツールは、SSL を使用するリポジトリーからはパッケージをダウンロードすることはできません。その代わりに各パッケージと依存関係を手動でダウンロードして、それらのパッケージを格納するローカルのリポジトリーを作成する必要があります。

7.2.4.1. ローカルリポジトリーの作成

Red Hat Enterprise Virtualization Hypervisor ISO ファイルにパッケージを追加するには、ベースの Red Hat Enterprise Linux Workstation および Red Hat Enterprise Linux Server のリポジトリーで提供されている createrepo ツールを使用して、それらのパッケージをインストールするためのリポジトリーとして機能するディレクトリーを設定する必要があります。

手順7.3 ローカルリポジトリーの作成

  1. 以下のコマンドを実行して、Red Hat Enterprise Virtualization Hypervisor ISO ファイルへの変更を行うシステムに createrepo パッケージと依存関係をインストールします。
    # yum install createrepo
  2. リポジトリーとして機能するディレクトリーを作成します。
    # mkdir exampleLocalrepo
  3. 新規作成したディレクトリーに必要なパッケージとその依存関係をすべてコピーします。
  4. そのディレクトリーがリポジトリーとして機能するように、メタデータファイルを設定します。
    # createrepo exampleLocalrepo
Red Hat Enterprise Virtualization Hypervisor ISO ファイルに必要なパッケージと依存関係をインストールするためのローカルリポジトリーの作成が完了しました。次のセクションに進み、パッケージを Red Hat Enterprise Virtualization Hypervisor ISO ファイルに追加します。

7.2.4.2. 例: Red Hat Enterprise Virtualization Hypervisor ISO ファイル内のパッケージ追加

edit-node ツールを使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイルにパッケージを追加します。この操作により、edit-node ツールを実行したディレクトリーに ISO ファイルのコピーが作成され、そのファイル名には、新規追加されたパッケージの名前が含まれます。
以下の例では、ローカルリポジトリーとして機能するように設定されたディレクトリーをパッケージのインストールソースに使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイルに単一のパッケージを追加します。

例7.2 Red Hat Enterprise Virtualization Hypervisor ISO ファイルへの単一のパッケージの追加

# edit-node --nogpgcheck --install package1 --repo exampleLocalrepo /usr/share/rhev-hypervisor/rhevh-latest-7.iso
パッケージ名のコンマ区切りリストを二重引用符で囲んで指定すると、複数のパッケージを追加することができます。以下の例では、ローカルリポジトリーとして機能するように設定されたディレクトリーをパッケージのインストールソースとして使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイルに 2 つのパッケージを追加します。

例7.3 Red Hat Enterprise Virtualization Hypervisor ISO ファイルへの複数のパッケージの追加

# edit-node --nogpgcheck --install "package1,package2" --repo  exampleLocalrepo /usr/share/rhev-hypervisor/rhevh-latest-7.iso

7.2.4.3. 例: Red Hat Enterprise Virtualization Hypervisor ISO ファイル内のパッケージ更新

edit-node ツールを使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイル内の既存のパッケージを更新することができます。この操作により、edit-node ツールを実行したディレクトリーに ISO ファイルのコピーが作成され、そのファイル名には更新されたパッケージの名前が含まれます。
以下の例では、the Red Hat Enterprise Virtualization Hypervisor リポジトリーの情報が記載されたリポジトリーファイルを使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイル内の vdsm パッケージを更新します。

例7.4 Red Hat Enterprise Virtualization Hypervisor ISO ファイル内の単一のパッケージの更新

# edit-node --nogpgcheck --install vdsm --repo /etc/yum.repos.d/rhevh.repo /usr/share/rhev-hypervisor/rhevh-latest-7.iso
パッケージ名のコンマ区切りリストを二重引用符で囲んで指定すると、複数のパッケージを更新することができます。以下の例では、Red Hat Enterprise Virtualization Hypervisor リポジトリーの情報が記載されたリポジトリーファイルを使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイル内の vdsm および libvirt のパッケージを更新します。

例7.5 Red Hat Enterprise Virtualization Hypervisor ISO ファイル内の複数のパッケージの更新

# edit-node --nogpgcheck --install "vdsm,libvirt" --repo /etc/yum.repos.d/rhevh.repo /usr/share/rhev-hypervisor/rhevh-latest-7.iso

7.2.5. ユーザーおよびグループのデフォルト ID の変更

7.2.5.1. 例: ユーザーのデフォルト ID の変更

edit-node ツールを使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイル内のユーザーのデフォルト ID を変更することができます。
以下の例では、ユーザーのデフォルト ID を user1 から 60 に変更します。

例7.6 単一のユーザーのデフォルト ID の変更

# edit-node --uidmod=user1,60
また、同じコマンドで --uidmod オプションを複数指定することにより、複数のユーザーのデフォルト ID を変更することができます。以下の例では、ユーザー user1 のデフォルト ID を 60 に、ユーザー user2 のデフォルト ID を 70 に変更します。

例7.7 複数のユーザーのデフォルト ID の変更

# edit-node --uidmod=user1,60 --uidmod=user2,70

7.2.5.2. 例: グループのデフォルト ID の変更

edit-node ツールを使用して、Red Hat Enterprise Virtualization Hypervisor ISO ファイル内のグループのデフォルト ID を変更することができます。
以下の例では、グループのデフォルト ID を group1 から 60 に変更します。

例7.8 単一のグループのデフォルト ID の変更

# edit-node --gidmod=group1,60
また、同じコマンドで --gidmod オプションを複数指定することにより、複数のグループのデフォルト ID を変更することができます。以下の例では、グループ group1 のデフォルト ID を 60 に、グループ group2 のデフォルト ID を 70 に変更します。

例7.9 複数のグループのデフォルト ID の変更

# edit-node --gidmod=group1,60 --gidmod=group2,70