検索

2.2. RHEL または Windows ISO ファイルを使用してインスタンスイメージを作成する

download PDF

ISO ファイルから、QCOW2 形式でカスタム Red Hat Enterprise Linux (RHEL) イメージまたは Windows イメージを作成し、それを Red Hat OpenStack Platform (RHOSP) Image サービス (glance) にアップロードしてインスタンス作成時に使用できます。

2.2.1. 前提条件

  • イメージを作成する Linux ホストマシン。これは、アンダークラウドまたはオーバークラウドを除き、Linux パッケージをインストールして実行できる任意のマシンです。
  • advanced-virt リポジトリーが有効になっている。

    $ sudo subscription-manager repos --enable=advanced-virt-for-rhel-<ver>-x86_64-rpms
  • ゲストオペレーティングシステムの作成に必要なすべてのパッケージが含まれる virt-manager アプリケーションがインストールされている。

    $ sudo dnf module install -y virt
  • 仮想マシンイメージにアクセスして変更するためのツールセットが含まれる libguestfs-tools パッケージがインストールされている。

    $ sudo dnf install -y libguestfs-tools-c
  • RHEL 9 または 8 ISO ファイルまたは Windows ISO ファイル。RHEL ISO ファイルの詳細は、RHEL 9.0 Binary DVD または RHEL 8.6 Binary DVD を参照してください。Windows ISO ファイルがない場合は、Microsoft Evaluation Center にアクセスして評価イメージをダウンロードしてください。
  • kickstart ファイルを編集する必要がある場合はテキストエディター (RHEL のみ)。
重要

アンダークラウドに libguestfs-tools パッケージをインストールする場合は、アンダークラウドの tripleo_iscsid サービスとのポートの競合を避けるために iscsid.socket を非アクティブ化します。

$ sudo systemctl disable --now iscsid.socket

前提条件を満たすと、RHEL または Windows イメージの作成に進めます。

2.2.2. Red Hat Enterprise Linux 9 イメージの作成

Red Hat Enterprise Linux (RHEL) 9 の ISO ファイルを使用して、QCOW2 形式の Red Hat OpenStack Platform (RHOSP) イメージを作成できます。

手順

  1. root ユーザーとしてホストマシンにログオンします。
  2. virt-install でインストールを開始します。

    [root@host]# virt-install \
      --virt-type kvm \
      --name <rhel9-cloud-image> \
      --ram <2048> \
      --cdrom </var/lib/libvirt/images/rhel-9.0-x86_64-dvd.iso> \
      --disk <rhel9.qcow2>,format=qcow2,size=<10> \
      --network=bridge:virbr0 \
      --graphics vnc,listen=127.0.0.1 \
      --noautoconsole \
      --os-variant=<rhel9.0>
    • 山かっこ <> 内の値を、使用している RHEL 9 イメージに応じた適切な値に置き換えます。

      このコマンドは、インスタンスを起動してインストールプロセスを開始します。

      注記

      インスタンスが自動的に起動しない場合には、virt-viewer のコマンドを実行して、コンソールを確認します。

      [root@host]# virt-viewer <rhel9-cloud-image>
  3. インスタンスを設定します。

    1. インストーラーの初期ブートメニューで、Install Red Hat Enterprise Linux 9 を選択します。
    2. 適切な 言語 および キーボード オプションを選択します。
    3. インストールに使用するデバイス種別を尋ねるプロンプトが表示されたら、自動検出したインストールメディア を選択します。
    4. インストール先を尋ねるプロンプトが表示されたら、ローカルの標準ディスク を選択します。その他のストレージオプションについては、Automatically configure partitioning を選択します。
    5. Which type of installation would you like? ウィンドウで、SSH サーバーをインストールする Basic Server インストールを選択します。
    6. ネットワークとホスト名の設定では、ネットワークに eth0 を選択し、デバイスのホスト名を指定します。デフォルトのホスト名は localhost.localdomain です。
    7. root パスワード フィールドにパスワードを入力し、確認 フィールドに同じパスワードをもう一度入力します。
  4. 画面上のメッセージでインストールの完了を確認できたら、インスタンスを再起動し、root ユーザーとしてログインします。
  5. /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集して、以下の値のみが記載されている状態にします。

    TYPE=Ethernet
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    NM_CONTROLLED=no
  6. マシンを再起動します。
  7. コンテンツ配信ネットワークにマシンを登録します。

    # sudo subscription-manager register
    # sudo subscription-manager attach \
      --pool=<pool-id>
    # sudo subscription-manager repos \
      --enable rhel-9-for-x86_64-baseos-rpms \
      --enable rhel-9-for-x86_64-appstream-rpms
    • pool-id を、有効なプール ID に置き換えます。subscription-manager list --available コマンドを実行すると、使用可能なプール ID のリストが表示されます。
  8. システムを更新します。

    # dnf -y update
  9. cloud-init パッケージをインストールします。

    # dnf install -y cloud-utils-growpart cloud-init
  10. /etc/cloud/cloud.cfg 設定ファイルを編集し、cloud_init_modules の下に以下の内容を追加します。

    - resolv-conf

    resolv-conf オプションは、インスタンスの初回起動時に resolv.conf ファイルを自動的に設定します。このファイルには、nameserversdomain、その他のオプションなどのインスタンスに関連した情報が記載されています。

  11. EC2 メタデータサービスにアクセスするときの問題を回避するには、次の行を /etc/sysconfig/network に追加します。

    NOZEROCONF=yes
  12. コンソールメッセージが Dashboard の ログ タブおよび nova console-log の出力に表示されるようにするには、以下のブートオプションを /etc/default/grub ファイルに追記します。

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
  13. grub2-mkconfig コマンドを実行します。

    # grub2-mkconfig -o /boot/grub2/grub.cfg

    以下のような出力が表示されます。

    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-3.10.0-229.9.2.el9.x86_64
    Found initrd image: /boot/initramfs-3.10.0-229.9.2.el9.x86_64.img
    Found linux image: /boot/vmlinuz-3.10.0-121.el9.x86_64
    Found initrd image: /boot/initramfs-3.10.0-121.el9.x86_64.img
    Found linux image: /boot/vmlinuz-0-rescue-b82a3044fb384a3f9aeacf883474428b
    Found initrd image: /boot/initramfs-0-rescue-b82a3044fb384a3f9aeacf883474428b.img
    done
  14. インスタンスの登録を解除して、作成されるイメージにこのインスタンスのサブスクリプション情報が含まれないようにします。

    # subscription-manager repos --disable=*
    # subscription-manager unregister
    # dnf clean all
  15. インスタンスの電源をオフにします。

    # poweroff
  16. virt-sysprep コマンドでイメージのリセットおよびクリーニングをして、問題なくインスタンスの作成に使用できるようにします。

    [root@host]# virt-sysprep -d <rhel9-cloud-image>
  17. ディスクイメージ内の空き領域をホスト内の空き領域に変換して、イメージサイズを縮小します。

    [root@host]# virt-sparsify \
      --compress <rhel9.qcow2> <rhel9-cloud.qcow2>

    このコマンドは、コマンドが実行された場所に新しい <rhel9-cloud.qcow2> ファイルを作成します。

    注記

    インスタンスに適用されているフレーバーのディスクスペースに応じて、イメージをベースとするインスタンスのパーティションを手動でリサイズする必要があります。

<rhel9-cloud.qcow2> イメージファイルを Image サービスにアップロードする準備が整いました。このイメージを RHOSP デプロイメントにアップロードする方法の詳細は、イメージを Image サービスにアップロードする を参照してください。

2.2.3. Red Hat Enterprise Linux 8 イメージの作成

Red Hat Enterprise Linux (RHEL) 8 の ISO ファイルを使用して、QCOW2 形式の Red Hat OpenStack Platform (RHOSP) イメージを作成できます。

手順

  1. root ユーザーとしてホストマシンにログオンします。
  2. virt-install でインストールを開始します。

    [root@host]# virt-install \
      --virt-type kvm \
      --name <rhel86-cloud-image> \
      --ram <2048> \
      --vcpus <2> \
      --disk <rhel86.qcow2>,format=qcow2,size=<10> \
      --location <rhel-8.6-x86_64-boot.iso> \
      --network=bridge:virbr0 \
      --graphics vnc,listen=127.0.0.1 \
      --noautoconsole \
      --os-variant <rhel8.6>
    • 山かっこ <> 内の値を、使用している RHEL イメージに応じた適切な値に置き換えます。

      このコマンドは、インスタンスを起動してインストールプロセスを開始します。

      注記

      インスタンスが自動的に起動しない場合には、virt-viewer のコマンドを実行して、コンソールを確認します。

      [root@host]# virt-viewer <rhel86-cloud-image>
  3. インスタンスを設定します。

    1. インストーラーの初期ブートメニューで、Install Red Hat Enterprise Linux 8 を選択します。
    2. 適切な 言語 および キーボード オプションを選択します。
    3. インストールに使用するデバイス種別を尋ねるプロンプトが表示されたら、基本ストレージデバイス を選択します。
    4. デバイスのホスト名を指定します。デフォルトのホスト名は localhost.localdomain です。
    5. タイムゾーンroot パスワードを設定します。
    6. Which type of installation would you like? ウィンドウで、SSH サーバーをインストールする Basic Server インストールを選択します。
  4. 画面上のメッセージでインストールの完了を確認できたら、インスタンスを再起動し、root ユーザーとしてログインします。
  5. /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集して、以下の値のみが記載されている状態にします。

    TYPE=Ethernet
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    NM_CONTROLLED=no
  6. マシンを再起動します。
  7. コンテンツ配信ネットワークにマシンを登録します。

    # sudo subscription-manager register
    # sudo subscription-manager attach \
      --pool=<pool-id>
    # sudo subscription-manager repos \
      --enable rhel-8-for-x86_64-baseos-rpms \
      --enable rhel-8-for-x86_64-appstream-rpms
    • pool-id を、有効なプール ID に置き換えます。subscription-manager list --available コマンドを実行すると、使用可能なプール ID のリストが表示されます。
  8. システムを更新します。

    # dnf -y update
  9. cloud-init パッケージをインストールします。

    # dnf install -y cloud-utils-growpart cloud-init
  10. /etc/cloud/cloud.cfg 設定ファイルを編集し、cloud_init_modules の下に以下の内容を追加します。

    - resolv-conf

    resolv-conf オプションは、インスタンスの初回起動時に resolv.conf ファイルを自動的に設定します。このファイルには、nameserversdomain、その他のオプションなどのインスタンスに関連した情報が記載されています。

  11. ネットワークの問題が発生するのを防ぐために、/etc/udev/rules.d/75-persistent-net-generator.rules ファイルを作成します。

    # echo "#" > /etc/udev/rules.d/75-persistent-net-generator.rules

    これにより、/etc/udev/rules.d/70-persistent-net.rules ファイルが作成されるのを防ぎます。/etc/udev/rules.d/70-persistent-net.rules ファイルが作成されると、ネットワークインターフェイスが eth0 ではなく eth1 として作成されて IP アドレスが割り当てられないため、スナップショットから起動するときにネットワークが正しく機能しない可能性があります。

  12. EC2 メタデータサービスにアクセスするときの問題を回避するには、次の行を /etc/sysconfig/network に追加します。

    NOZEROCONF=yes
  13. コンソールメッセージが Dashboard の ログ タブおよび nova console-log の出力に表示されるようにするには、以下のブートオプションを /etc/grub.conf ファイルに追記します。

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
  14. インスタンスの登録を解除して、作成されるイメージにこのインスタンスの同じサブスクリプション情報が含まれないようにします。

    # subscription-manager repos --disable=*
    # subscription-manager unregister
    # dnf clean all
  15. インスタンスの電源をオフにします。

    # poweroff
  16. virt-sysprep コマンドでイメージのリセットおよびクリーニングをして、問題なくインスタンスの作成に使用できるようにします。

    [root@host]# virt-sysprep -d <rhel86-cloud-image>
  17. ディスクイメージ内の空き領域をホスト内の空き領域に変換して、イメージサイズを縮小します。

    [root@host]# virt-sparsify \
      --compress <rhel86.qcow2> <rhel86-cloud.qcow2>

    このコマンドは、コマンドが実行された場所に新しい <rhel86-cloud.qcow2> ファイルを作成します。

    注記

    インスタンスに適用されているフレーバーのディスクスペースに応じて、イメージをベースとするインスタンスのパーティションを手動でリサイズする必要があります。

<rhel86-cloud.qcow2> イメージファイルを Image サービスにアップロードする準備が整いました。このイメージを RHOSP デプロイメントにアップロードする方法の詳細は、イメージを Image サービスにアップロードする を参照してください。

2.2.4. Windows イメージの作成

Windows の ISO ファイルを使用して、QCOW2 形式で Red Hat OpenStack Platform (RHOSP) イメージを作成できます。

手順

  1. root ユーザーとしてホストマシンにログオンします。
  2. virt-install でインストールを開始します。

    [root@host]# virt-install \
        --name=<windows-image> \
        --disk size=<size> \
        --cdrom=<file-path-to-windows-iso-file> \
        --os-type=windows \
        --network=bridge:virbr0 \
        --graphics spice \
        --ram=<ram>
    • 山かっこ <> 内の値を、使用している Windows イメージに応じた適切な値に置き換えます。

      注記

      --os-type=windows パラメーターにより、Windows インスタンスのクロックが正しく設定され、Hyper-V Enlightenment 機能が有効化されるようになります。Image サービス (glance) にイメージをアップロードする前に、イメージメタデータに os_type=windows を設定する必要もあります。

  3. virt-install コマンドは、デフォルトでインスタンスイメージを /var/lib/libvirt/images/<windows-image>.qcow2 として保存します。インスタンスイメージを別の場所に保存する場合は、--disk オプションのパラメーターを変更します。

    --disk path=<file-name>,size=<size>
    • <file-name> を、インスタンスイメージを保存するファイルの名前 (およびオプションでそのパス) に置き換えます。たとえば、path=win8.qcow2,size=8 は現在の作業ディレクトリーに win8.qcow2 という名前の 8 GB ファイルを作成します。

      注記

      インスタンスが自動的に起動しない場合には、virt-viewer のコマンドを実行して、コンソールを確認します。

      [root@host]# virt-viewer <windows-image>

      Windows のインストール方法に関する詳細は、Microsoft のドキュメントを参照してください。

  4. 新規インストールした Windows システムで仮想化ハードウェアを使用できるようにするには、VirtIO ドライバーのインストールが必要な場合があります。詳細は、仮想化の設定および管理Windows 仮想マシン用の KVM 準仮想化ドライバーのインストール を参照してください。
  5. Windows システムで Cloudbase-Init をダウンロードして実行すると、設定が完了します。Cloudbase-Init のインストールの最後に、Run SysprepShutdown チェックボックスを選択します。Sysprep ツールは、特定の Microsoft サービスで使用する OS ID を生成して、インスタンスを一意にします。

    重要

    Red Hat は Cloudbase-Init に関するテクニカルサポートは提供しません。問題が発生した場合は、Cloudbase Solutions に連絡する を参照してください。

    Windows システムがシャットダウンすると、<windows-image.qcow2> イメージファイルを Image サービスにアップロードできます。このイメージを RHOSP デプロイメントにアップロードする方法の詳細は、イメージを Image サービスにアップロードする を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.