Azure Stack 用の Red Hat ベースの仮想マシンの準備Prepare a Red Hat-based virtual machine for Azure Stack

この記事では、Red Hat Enterprise Linux (RHEL) の仮想マシンを Azure Stack で使用できるように準備する方法について説明します。In this article, you will learn how to prepare a Red Hat Enterprise Linux (RHEL) virtual machine for use in Azure Stack. この記事で取り上げる RHEL のバージョンは 7.1+ で、The versions of RHEL that are covered in this article are 7.1+. 準備対象のハイパーバイザーは Hyper-V、Kernel-based Virtual Machine (KVM)、VMware です。The hypervisors for preparation that are covered in this article are Hyper-V, kernel-based virtual machine (KVM), and VMware.

Red Hat Enterprise Linux のサポート情報については、「Red Hat and Azure Stack: Frequently Asked Questions」(Red Hat と Azure Stack: よく寄せられる質問) を参照してください。For Red Hat Enterprise Linux support information, refer to Red Hat and Azure Stack: Frequently Asked Questions.

Hyper-V マネージャーからの Red Hat ベースの仮想マシンの準備Prepare a Red Hat-based virtual machine from Hyper-V Manager

このセクションは、Red Hat の Web サイトから取得した ISO ファイルの RHEL イメージが仮想ハード ディスク (VHD) にインストール済みであることを前提としています。This section assumes that you already have an ISO file from the Red Hat website and installed the RHEL image to a virtual hard disk (VHD). Hyper-V マネージャーを使用してオペレーティング システム イメージをインストールする方法の詳細については、Hyper-V の役割のインストールと仮想マシンの構成に関するページを参照してください。For more information about how to use Hyper-V Manager to install an operating system image, see Install the Hyper-V Role and Configure a Virtual Machine.

RHEL のインストールに関する注記RHEL installation notes

  • Azure Stack では、VHDX 形式はサポートされません。Azure Stack does not support the VHDX format. Azure でサポートされるのは、容量固定の VHD のみです。Azure supports only fixed VHD. Hyper-V マネージャーを使ってディスクの形式を VHD に変換するか、または convert-vhd コマンドレットを使用してください。You can use Hyper-V Manager to convert the disk to VHD format, or you can use the convert-vhd cmdlet. VirtualBox を使用する場合は、ディスクの作成時に、既定の動的割り当てオプションではなく、 [容量固定] を選択します。If you use VirtualBox, select Fixed size as opposed to the default dynamically allocated option when you create the disk.
  • Azure Stack でサポートされるのは、第 1 世代の仮想マシンのみです。Azure Stack supports only generation 1 virtual machines. 第 1 世代の仮想マシンを、VHDX ファイル形式から VHD ファイル形式に、容量可変から容量固定ディスクに変換できます。You can convert a generation 1 virtual machine from VHDX to the VHD file format and from dynamically expanding to a fixed-size disk. ただし仮想マシンの世代を変更することはできません。You can't change a virtual machine's generation. 詳細については、「Should I create a generation 1 or 2 virtual machine in Hyper-V? (Hyper-V で第 1 世代または第 2 世代の仮想マシンを作成する必要はありますか)」を参照してください。For more information, see Should I create a generation 1 or 2 virtual machine in Hyper-V?.
  • VHD のサイズの上限は、1,023 GB です。The maximum size that's allowed for the VHD is 1,023 GB.
  • Linux オペレーティング システムをインストールする場合は、Logical Volume Manager (LVM) (通常、多くのインストールで既定) ではなく標準パーティションを使用することをお勧めします。When you install the Linux operating system, we recommend that you use standard partitions rather than Logical Volume Manager (LVM), which is often the default for many installations. 特にオペレーティング システム ディスクをトラブルシューティングのために別の同じ仮想マシンに接続する必要がある場合、そうすることで、複製された仮想マシンとの LVM 名の競合を回避することができます。This practice avoids LVM name conflicts with cloned virtual machines, particularly if you ever need to attach an operating system disk to another identical virtual machine for troubleshooting.
  • ユニバーサル ディスク フォーマット (UDF) ファイル システムをマウントするためのカーネル サポートが必要です。Kernel support for mounting Universal Disk Format (UDF) file systems is required. 最初の起動時に、ゲストに接続されている UDF でフォーマットされたメディアを介して、プロビジョニング構成が Linux 仮想マシンに渡されます。At first boot, the UDF-formatted media that is attached to the guest passes the provisioning configuration to the Linux virtual machine. Azure Linux エージェントは、その構成を読み取り、仮想マシンをプロビジョニングする UDF ファイル システムをマウントする必要があります。The Azure Linux Agent must mount the UDF file system to read its configuration and provision the virtual machine.
  • オペレーティング システム ディスクでスワップ パーティションを構成しないでください。Do not configure a swap partition on the operating system disk. Linux エージェントは、一時的なリソース ディスク上にスワップ ファイルを作成するよう構成できます。The Linux Agent can be configured to create a swap file on the temporary resource disk. このことに関する詳細については、次の手順を参照してください。More information about can be found in the following steps.
  • Azure の VHD の仮想サイズはすべて、1 MB にアラインメントさせる必要があります。All VHDs on Azure must have a virtual size aligned to 1 MB. 未フォーマット ディスクから VHD に変換するときに、変換する前の未フォーマット ディスクのサイズが 1 MB の倍数であることを確認する必要があります。When converting from a raw disk to VHD, you must ensure that the raw disk size is a multiple of 1 MB before conversion. 詳細については、後述の手順を参照してください。More details can be found in the steps below.
  • Azure Stack では、cloud-init はサポートされません。Azure Stack does not support cloud-init. VM は、サポートされているバージョンの Windows Azure Linux エージェント (WALA) で構成する必要があります。Your VM must be configured with a supported version of the Windows Azure Linux Agent (WALA).

Hyper-V マネージャーからの RHEL 7 仮想マシンの準備Prepare an RHEL 7 virtual machine from Hyper-V Manager

  1. Hyper-V マネージャーで仮想マシンを選択します。In Hyper-V Manager, select the virtual machine.

  2. [接続] をクリックすると、仮想マシンのコンソール ウィンドウが開きます。Click Connect to open a console window for the virtual machine.

  3. /etc/sysconfig/network ファイルを作成または編集して次のテキストを追加します。Create or edit the /etc/sysconfig/network file, and add the following text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  4. 必要に応じて /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを作成または編集して次のテキストを追加します。Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text as needed:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    NM_CONTROLLED=no
    
  5. 次のコマンドを実行して、起動時にネットワーク サービスが開始されるようにします。Ensure that the network service starts at boot time by running the following command:

    sudo systemctl enable network
    
  6. RHEL リポジトリからパッケージをインストールできるように、次のコマンドを実行して Red Hat のサブスクリプションを登録します。Register your Red Hat subscription to enable the installation of packages from the RHEL repository by running the following command:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  7. GRUB 構成でカーネルのブート行を変更して Azure の追加のカーネル パラメーターを含めます。Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. この変更を行うには、テキスト エディターで /etc/default/grub を開き、GRUB_CMDLINE_LINUX パラメーターを編集します。To do this modification, open /etc/default/grub in a text editor, and modify the GRUB_CMDLINE_LINUX parameter. 例:For example:

    GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    これにより、すべてのコンソール メッセージが最初のシリアル ポートに送信され、メッセージを Azure での問題のデバッグに利用できるようになります。This ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. NIC の新しい RHEL 7 名前付け規則もオフになります。This configuration also turns off the new RHEL 7 naming conventions for NICs.

    クラウド環境では、すべてのログをシリアル ポートに送信するため、グラフィカル ブートおよびクワイエット ブートは役立ちません。Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. crashkernel オプションの構成は、必要であればそのままにしてかまいません。You can leave the crashkernel option configured if desired. ただし、このパラメーターにより、仮想マシン内の使用可能なメモリ量が 128 MB 以上減少します。仮想マシンのサイズが小さいと、このことが問題になる可能性があります。Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes. 次のパラメーターを削除することをお勧めします。We recommend that you remove the following parameters:

    rhgb quiet crashkernel=auto
    
  8. /etc/default/grubの編集を終了したら、次のコマンドを実行して GRUB 構成を再構築します。After you are done editing /etc/default/grub, run the following command to rebuild the grub configuration:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  9. cloud-init を停止してアンインストールします。Stop and Uninstall cloud-init:

    systemctl stop cloud-init
    yum remove cloud-init
    
  10. SSH サーバーがインストールされており、起動時に開始するように構成されていることを確認します。通常は、既定でそのように構成されています。Ensure that the SSH server is installed and configured to start at boot time, which is usually the default. /etc/ssh/sshd_config を変更して、次の行を含めます。Modify /etc/ssh/sshd_config to include the following line:

    ClientAliveInterval 180
    
  11. WALinuxAgent パッケージ WALinuxAgent-<version> が Red Hat extras リポジトリにプッシュされました。The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. 次のコマンドを実行して extras リポジトリを有効にします。Enable the extras repository by running the following command:

    subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  12. 次のコマンドを実行して Azure Linux エージェントをインストールします。Install the Azure Linux Agent by running the following command:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent.service
    
  13. オペレーティング システム ディスクにスワップ領域を作成しないでください。Do not create swap space on the operating system disk.

    Azure Linux エージェントは、Azure で仮想マシンがプロビジョニングされた後に仮想マシンに接続されたローカルのリソース ディスクを使用してスワップ領域を自動的に構成できます。The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. ローカル リソース ディスクは一時ディスクであるため、仮想マシンのプロビジョニングが解除されると空になります。The local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. 前の手順で Azure Linux エージェントのインストール後に、/etc/waagent.conf にある次のパラメーターを適切に変更します。After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    #NOTE: set this to whatever you need it to be.
    
  14. サブスクリプションを登録解除する場合は、次のコマンドを実行します。If you want to unregister the subscription, run the following command:

    sudo subscription-manager unregister
    
  15. エンタープライズ証明機関を使用してデプロイされたシステムを使用している場合、RHEL 仮想マシンは Azure Stack ルート証明書を信頼しません。If you are using a system that was deployed using an Enterprise Certificate Authority, the RHEL virtual machine will not trust the Azure Stack root certificate. この証明書は、信頼できるルート ストアに配置する必要があります。You need to place that into the trusted root store. Adding trusted root certificates to the server」(信頼できるルート証明書をサーバーに追加する) を参照してください。See Adding trusted root certificates to the server.

  16. 次のコマンドを実行して仮想マシンをプロビジョニング解除し、Azure でのプロビジョニング用に準備します。Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    
  17. Hyper-V マネージャーで [アクション] > [シャットダウン] の順にクリックします。Click Action > Shut Down in Hyper-V Manager.

  18. Hyper-V Manager の "ディスクの編集" 機能または Convert-VHD PowerShell コマンドを使用して、VHD を固定サイズの VHD に変換します。Convert the VHD to a fixed size VHD using either the Hyper-V Manager "Edit disk" feature, or the Convert-VHD PowerShell command. これで、Linux VHD を Azure にアップロードする準備が整いました。Your Linux VHD is now ready to be uploaded to Azure.

KVM からの Red Hat ベースの仮想マシンの準備Prepare a Red Hat-based virtual machine from KVM

  1. Red Hat の Web サイトから、RHEL 7 の KVM イメージをダウンロードします。Download the KVM image of RHEL 7 from the Red Hat website. この手順では、例として RHEL 7 を使用します。This procedure uses RHEL 7 as the example.

  2. ルート パスワードを設定します。Set a root password.

    暗号化されたパスワードを生成し、コマンドの出力をコピーします。Generate an encrypted password, and copy the output of the command:

    openssl passwd -1 changeme
    

    guestfish でルート パスワードを設定します。Set a root password with guestfish:

    guestfish --rw -a <image-name>
    > <fs> run
    > <fs> list-filesystems
    > <fs> mount /dev/sda1 /
    > <fs> vi /etc/shadow
    > <fs> exit
    

    ルート ユーザーの 2 番目のフィールドを、"!!" からChange the second field of root user from "!!" 暗号化されたパスワードに変更します。to the encrypted password.

  3. qcow2 イメージから KVM の仮想マシンを作成します。Create a virtual machine in KVM from the qcow2 image. ディスクの種類を qcow2 に設定して、仮想ネットワーク インターフェイスのデバイス モデルを virtio に設定します。Set the disk type to qcow2, and set the virtual network interface device model to virtio. その後、仮想マシンを起動し、root としてサインインします。Then, start the virtual machine, and sign in as root.

  4. /etc/sysconfig/network ファイルを作成または編集して次のテキストを追加します。Create or edit the /etc/sysconfig/network file, and add the following text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  5. /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを作成または編集して次のテキストを追加します。Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    NM_CONTROLLED=no
    
  6. 次のコマンドを実行して、起動時にネットワーク サービスが開始されるようにします。Ensure that the network service starts at boot time by running the following command:

    sudo systemctl enable network
    
  7. RHEL リポジトリからパッケージをインストールできるように、次のコマンドを実行して Red Hat のサブスクリプションを登録します。Register your Red Hat subscription to enable installation of packages from the RHEL repository by running the following command:

    subscription-manager register --auto-attach --username=XXX --password=XXX
    
  8. GRUB 構成でカーネルのブート行を変更して Azure の追加のカーネル パラメーターを含めます。Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. この構成を行うには、テキスト エディターで /etc/default/grub を開き、GRUB_CMDLINE_LINUX パラメーターを変更します。To do this configuration, open /etc/default/grub in a text editor, and modify the GRUB_CMDLINE_LINUX parameter. 例:For example:

    GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    このコマンドにより、すべてのコンソール メッセージが最初のシリアル ポートに送信され、メッセージを Azure での問題のデバッグに利用できるようになります。This command also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. NIC の新しい RHEL 7 名前付け規則も、このコマンドでオフになります。The command also turns off the new RHEL 7 naming conventions for NICs

    クラウド環境では、すべてのログをシリアル ポートに送信するため、グラフィカル ブートおよびクワイエット ブートは役立ちません。Graphical and quiet boot are not useful in a cloud environment where all the logs are sent to the serial port. crashkernel オプションの構成は、必要であればそのままにしてかまいません。You can leave the crashkernel option configured if desired. ただし、このパラメーターにより、仮想マシン内の使用可能なメモリ量が 128 MB 以上減少します。仮想マシンのサイズが小さいと、このことが問題になる可能性があります。This parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes. 次のパラメーターを削除することをお勧めします。We recommend that you remove the following parameters:

    rhgb quiet crashkernel=auto
    
  9. /etc/default/grubの編集を終了したら、次のコマンドを実行して GRUB 構成を再構築します。After you are done editing /etc/default/grub, run the following command to rebuild the grub configuration:

    grub2-mkconfig -o /boot/grub2/grub.cfg
    
  10. Hyper-V モジュールを initramfs に追加します。Add Hyper-V modules into initramfs.

    /etc/dracut.conf を編集して、コンテンツを追加します。Edit /etc/dracut.conf and add content:

    add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    initramfs を再構築します。Rebuild initramfs:

    dracut -f -v
    
  11. cloud-init を停止してアンインストールします。Stop and Uninstall cloud-init:

    systemctl stop cloud-init
    yum remove cloud-init
    
  12. SSH サーバーがインストールされており、起動時に開始するように構成されていることを確認します。Ensure that the SSH server is installed and configured to start at boot time:

    systemctl enable sshd
    

    /etc/ssh/sshd_config を変更して、次の行を含めます。Modify /etc/ssh/sshd_config to include the following lines:

    PasswordAuthentication yes
    ClientAliveInterval 180
    
  13. Azure Stack 用のカスタム vhd を作成する際は、Azure Stack 環境ではバージョン 2.2.20 から 2.2.35 の WALinuxAgent (両バージョンを含む) が機能しないことに留意してください。When creating a custom vhd for Azure Stack, keep in mind that WALinuxAgent version between 2.2.20 and 2.2.35 (both exclusive) do not work on Azure Stack environments. バージョン 2.2.20/2.2.35 を使用してイメージを準備できます。You may use versions 2.2.20/2.2.35 versions to prepare your image. 2.2.35 より後のバージョンを使用してカスタム イメージを準備するには、Azure Stack を 1903 リリースに更新するか、1901/1902 修正プログラムを適用します。To use versions above 2.2.35 to prepare your custom image, update your Azure Stack to 1903 release or apply the 1901/1902 hotfix.

    次の手順に従って WALinuxAgent をダウンロードします。Follow these instructions to download the WALinuxAgent:

    a.a. setuptools をダウンロードします。Download setuptools

    wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz --no-check-certificate
    tar xzf setuptools-7.0.tar.gz
    cd setuptools-7.0
    

    b.b. 次の例では、GitHub リポジトリから "2.2.20" バージョンをダウンロードします。This is an example where we download "2.2.20" version from the GitHub repo. 2.2.20 バージョンのエージェントを GitHub からダウンロードして解凍します。Download and unzip the 2.2.20 version of the agent from our GitHub.

    wget https://github.com/Azure/WALinuxAgent/archive/v2.2.20.zip
    unzip v2.2.20.zip
    cd WALinuxAgent-2.2.20
    

    c.c. setup.py をインストールしますInstall setup.py

    sudo python setup.py install
    

    d.d. waagent を再起動しますRestart waagent

    sudo systemctl restart waagent
    

    e.e. エージェントのバージョンがダウンロードしたものと一致するかどうかをテストします。Test if the agent version matches the one your downloaded. この例では、2.2.20 となります。For this example, it should be 2.2.20.

    waagent -version
    
  14. オペレーティング システム ディスクにスワップ領域を作成しないでください。Do not create swap space on the operating system disk.

    Azure Linux エージェントは、Azure で仮想マシンがプロビジョニングされた後に仮想マシンに接続されたローカルのリソース ディスクを使用してスワップ領域を自動的に構成できます。The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. ローカル リソース ディスクは一時ディスクであるため、仮想マシンのプロビジョニングが解除されると空になります。The local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. 前の手順で Azure Linux エージェントのインストール後に、/etc/waagent.conf にある次のパラメーターを適切に変更します。After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    #NOTE: set this to whatever you need it to be.
    
  15. 次のコマンドを実行して、サブスクリプションを登録解除します (必要な場合)。Unregister the subscription (if necessary) by running the following command:

    subscription-manager unregister
    
  16. エンタープライズ証明機関を使用してデプロイされたシステムを使用している場合、RHEL 仮想マシンは Azure Stack ルート証明書を信頼しません。If you are using a system that was deployed using an Enterprise Certificate Authority, the RHEL virtual machine will not trust the Azure Stack root certificate. この証明書は、信頼できるルート ストアに配置する必要があります。You need to place that into the trusted root store. Adding trusted root certificates to the server」(信頼できるルート証明書をサーバーに追加する) を参照してください。See Adding trusted root certificates to the server.

  17. 次のコマンドを実行して仮想マシンをプロビジョニング解除し、Azure でのプロビジョニング用に準備します。Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    
  18. KVM で仮想マシンをシャットダウンします。Shut down the virtual machine in KVM.

  19. qcow2 イメージを VHD 形式に変換します。Convert the qcow2 image to the VHD format.

    注意

    qemu-img のバージョン 2.2.1 以降には VHD が適切にフォーマットされないというバグがあることがわかっています。There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. この問題は QEMU 2.6 で修正されています。The issue has been fixed in QEMU 2.6. qemu-img 2.2.0 以前を使用するか、2.6 以降に更新することをお勧めします。It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. https://bugs.launchpad.net/qemu/+bug/1490611 を参照してください。Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

    まず、イメージを未加工の形式に変換します。First convert the image to raw format:

    qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
    

    未加工のイメージのサイズが 1 MB になっていることを確認します。Make sure that the size of the raw image is aligned with 1 MB. そうでない場合は、1 MB になるようにサイズの端数を切り上げます。Otherwise, round up the size to align with 1 MB:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    qemu-img resize rhel-7.4.raw $rounded_size
    

    未フォーマット ディスクを固定サイズの VHD に変換します。Convert the raw disk to a fixed-sized VHD:

    qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
    

    または、qemu のバージョン 2.6 以降を使用して force_size オプションを含めます。Or, with qemu version 2.6+ include the force_size option:

    qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
    

VMware からの Red Hat ベースの仮想マシンの準備Prepare a Red Hat-based virtual machine from VMware

このセクションでは、VMware に RHEL の仮想マシンが既にインストールされていると仮定します。This section assumes that you have already installed a RHEL virtual machine in VMware. VMware にオペレーティング システムをインストールする方法の詳細については、VMware のゲスト オペレーティング システムのインストール ガイドを参照してください。For details about how to install an operating system in VMware, see VMware Guest Operating System Installation Guide.

  • Linux オペレーティング システムをインストールする場合は、LVM (通常、多くのインストールで既定) ではなく標準パーティションを使用することをお勧めします。When you install the Linux operating system, we recommend that you use standard partitions rather than LVM, which is often the default for many installations. 特にオペレーティング システム ディスクをトラブルシューティングのために別の仮想マシンに接続する必要がある場合、そうすることで、複製された仮想マシンとの LVM 名の競合を回避することができます。This avoids LVM name conflicts with cloned virtual machine, particularly if an operating system disk ever needs to be attached to another virtual machine for troubleshooting. 必要な場合は、LVM または RAID をデータ ディスク上で使用できます。LVM or RAID can be used on data disks if preferred.
  • オペレーティング システム ディスクでスワップ パーティションを構成しないでください。Do not configure a swap partition on the operating system disk. 一時的なリソース ディスク上にスワップ ファイルを作成するよう Linux エージェントを構成できます。You can configure the Linux agent to create a swap file on the temporary resource disk. この詳細については、次の手順を参照してください。You can find more information about this in the steps that follow.
  • 仮想ハード ディスクを作成する場合は、 [Store virtual disk as a single file (仮想ディスクを 1 つのファイルとして格納する)] を選択します。When you create the virtual hard disk, select Store virtual disk as a single file.

VMware からの RHEL 7 仮想マシンの準備Prepare an RHEL 7 virtual machine from VMware

  1. /etc/sysconfig/network ファイルを作成または編集して次のテキストを追加します。Create or edit the /etc/sysconfig/network file, and add the following text:

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
  2. /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを作成または編集して次のテキストを追加します。Create or edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file, and add the following text:

    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    NM_CONTROLLED=no
    
  3. 次のコマンドを実行して、起動時にネットワーク サービスが開始されるようにします。Ensure that the network service will start at boot time by running the following command:

    sudo chkconfig network on
    
  4. RHEL リポジトリからパッケージをインストールできるように、次のコマンドを実行して Red Hat のサブスクリプションを登録します。Register your Red Hat subscription to enable the installation of packages from the RHEL repository by running the following command:

    sudo subscription-manager register --auto-attach --username=XXX --password=XXX
    
  5. GRUB 構成でカーネルのブート行を変更して Azure の追加のカーネル パラメーターを含めます。Modify the kernel boot line in your grub configuration to include additional kernel parameters for Azure. この変更を行うには、テキスト エディターで /etc/default/grub を開き、GRUB_CMDLINE_LINUX パラメーターを編集します。To do this modification, open /etc/default/grub in a text editor, and modify the GRUB_CMDLINE_LINUX parameter. 例:For example:

    GRUB_CMDLINE_LINUX="rootdelay=300 console=ttyS0 earlyprintk=ttyS0 net.ifnames=0"
    

    この構成により、すべてのコンソール メッセージが最初のシリアル ポートに送信され、メッセージを Azure での問題のデバッグに利用できるようになります。This configuration also ensures that all console messages are sent to the first serial port, which can assist Azure support with debugging issues. NIC の新しい RHEL 7 名前付け規則もオフになります。It also turns off the new RHEL 7 naming conventions for NICs. 上記の他に、次のパラメーターを削除することをお勧めします。In addition, we recommend that you remove the following parameters:

    rhgb quiet crashkernel=auto
    

    クラウド環境では、すべてのログをシリアル ポートに送信するため、グラフィカル ブートおよびクワイエット ブートは役立ちません。Graphical and quiet boot are not useful in a cloud environment where we want all the logs to be sent to the serial port. crashkernel オプションの構成は、必要であればそのままにしてかまいません。You can leave the crashkernel option configured if desired. ただし、このパラメーターにより、仮想マシン内の使用可能なメモリ量が 128 MB 以上減少します。仮想マシンのサイズが小さいと、このことが問題になる可能性があります。Note that this parameter reduces the amount of available memory in the virtual machine by 128 MB or more, which might be problematic on smaller virtual machine sizes.

  6. /etc/default/grubの編集を終了したら、次のコマンドを実行して GRUB 構成を再構築します。After you are done editing /etc/default/grub, run the following command to rebuild the grub configuration:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    
  7. Hyper-V モジュールを initramfs に追加します。Add Hyper-V modules to initramfs.

    /etc/dracut.confを編集して、コンテンツを追加します。Edit /etc/dracut.conf, add content:

    add_drivers+="hv_vmbus hv_netvsc hv_storvsc"
    

    initramfs を再構築します。Rebuild initramfs:

    dracut -f -v
    
  8. cloud-init を停止してアンインストールします。Stop and Uninstall cloud-init:

    systemctl stop cloud-init
    yum remove cloud-init
    
  9. SSH サーバーがインストールされており、起動時に開始するように構成されていることを確認します。Ensure that the SSH server is installed and configured to start at boot time. 通常これが既定の設定です。This setting is usually the default. /etc/ssh/sshd_config を変更して、次の行を含めます。Modify /etc/ssh/sshd_config to include the following line:

    ClientAliveInterval 180
    
  10. WALinuxAgent パッケージ WALinuxAgent-<version> が Red Hat extras リポジトリにプッシュされました。The WALinuxAgent package, WALinuxAgent-<version>, has been pushed to the Red Hat extras repository. 次のコマンドを実行して extras リポジトリを有効にします。Enable the extras repository by running the following command:

    subscription-manager repos --enable=rhel-7-server-extras-rpms
    
  11. 次のコマンドを実行して Azure Linux エージェントをインストールします。Install the Azure Linux Agent by running the following command:

    sudo yum install WALinuxAgent
    sudo systemctl enable waagent.service
    
  12. オペレーティング システム ディスクにスワップ領域を作成しないでください。Do not create swap space on the operating system disk.

    Azure Linux エージェントは、Azure で仮想マシンがプロビジョニングされた後に仮想マシンに接続されたローカルのリソース ディスクを使用してスワップ領域を自動的に構成できます。The Azure Linux Agent can automatically configure swap space by using the local resource disk that is attached to the virtual machine after the virtual machine is provisioned on Azure. ローカル リソース ディスクは一時ディスクであるため、仮想マシンのプロビジョニングが解除されると空になることに注意してください。Note that the local resource disk is a temporary disk, and it might be emptied when the virtual machine is deprovisioned. 前の手順で Azure Linux エージェントのインストール後に、/etc/waagent.conf にある次のパラメーターを適切に変更します。After you install the Azure Linux Agent in the previous step, modify the following parameters in /etc/waagent.conf appropriately:

    ResourceDisk.Format=y
    ResourceDisk.Filesystem=ext4
    ResourceDisk.MountPoint=/mnt/resource
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048    NOTE: set this to whatever you need it to be.
    
  13. サブスクリプションを登録解除する場合は、次のコマンドを実行します。If you want to unregister the subscription, run the following command:

    sudo subscription-manager unregister
    
  14. エンタープライズ証明機関を使用してデプロイされたシステムを使用している場合、RHEL 仮想マシンは Azure Stack ルート証明書を信頼しません。If you are using a system that was deployed using an Enterprise Certificate Authority, the RHEL virtual machine will not trust the Azure Stack root certificate. この証明書は、信頼できるルート ストアに配置する必要があります。You need to place that into the trusted root store. Adding trusted root certificates to the server」(信頼できるルート証明書をサーバーに追加する) を参照してください。See Adding trusted root certificates to the server.

  15. 次のコマンドを実行して仮想マシンをプロビジョニング解除し、Azure でのプロビジョニング用に準備します。Run the following commands to deprovision the virtual machine and prepare it for provisioning on Azure:

    sudo waagent -force -deprovision
    export HISTSIZE=0
    logout
    
  16. 仮想マシンをシャットダウンし、VMDK ファイルを VHD 形式に変換します。Shut down the virtual machine, and convert the VMDK file to the VHD format.

    注意

    qemu-img のバージョン 2.2.1 以降には VHD が適切にフォーマットされないというバグがあることがわかっています。There is a known bug in qemu-img versions >=2.2.1 that results in an improperly formatted VHD. この問題は QEMU 2.6 で修正されています。The issue has been fixed in QEMU 2.6. qemu-img 2.2.0 以前を使用するか、2.6 以降に更新することをお勧めします。It is recommended to use either qemu-img 2.2.0 or lower, or update to 2.6 or higher. https://bugs.launchpad.net/qemu/+bug/1490611 を参照してください。Reference: https://bugs.launchpad.net/qemu/+bug/1490611.

    まず、イメージを未加工の形式に変換します。First convert the image to raw format:

    qemu-img convert -f qcow2 -O raw rhel-7.4.qcow2 rhel-7.4.raw
    

    未加工のイメージのサイズが 1 MB になっていることを確認します。Make sure that the size of the raw image is aligned with 1 MB. そうでない場合は、1 MB になるようにサイズの端数を切り上げます。Otherwise, round up the size to align with 1 MB:

    MB=$((1024*1024))
    size=$(qemu-img info -f raw --output json "rhel-7.4.raw" | \
    gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1)*$MB))
    qemu-img resize rhel-7.4.raw $rounded_size
    

    未フォーマット ディスクを固定サイズの VHD に変換します。Convert the raw disk to a fixed-sized VHD:

    qemu-img convert -f raw -o subformat=fixed -O vpc rhel-7.4.raw rhel-7.4.vhd
    

    または、qemu のバージョン 2.6 以降を使用して force_size オプションを含めます。Or, with qemu version 2.6+ include the force_size option:

    qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
    

kickstart ファイルを使用して ISO から Red Hat ベースの仮想マシンを自動的に準備するPrepare a Red Hat-based virtual machine from an ISO by using a kickstart file automatically

  1. 次の内容を含んだ kickstart ファイルを作成し、そのファイルを保存します。Create a kickstart file that includes the following content, and save the file. kickstart のインストールの詳細については、 kickstart インストール ガイドを参照してください。For details about kickstart installation, see the Kickstart Installation Guide.

    Kickstart for provisioning a RHEL 7 Azure VM
    
    System authorization information
    auth --enableshadow --passalgo=sha512
    
    Use graphical install
    text
    
    Do not run the Setup Agent on first boot
    firstboot --disable
    
    Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    
    System language
    lang en_US.UTF-8
    
    Network information
    network  --bootproto=dhcp
    
    Root password
    rootpw --plaintext "to_be_disabled"
    
    System services
    services --enabled="sshd,waagent,NetworkManager"
    
    System timezone
    timezone Etc/UTC --isUtc --ntpservers 0.rhel.pool.ntp.org,1.rhel.pool.ntp.org,2.rhel.pool.ntp.org,3.rhel.pool.ntp.org
    
    Partition clearing information
    clearpart --all --initlabel
    
    Clear the MBR
    zerombr
    
    Disk partitioning information
    part /boot --fstype="xfs" --size=500
    part / --fstyp="xfs" --size=1 --grow --asprimary
    
    System bootloader configuration
    bootloader --location=mbr
    
    Firewall configuration
    firewall --disabled
    
    Enable SELinux
    selinux --enforcing
    
    Don't configure X
    skipx
    
    Power down the machine after install
    poweroff
    
    %packages
    @base
    @console-internet
    chrony
    sudo
    parted
    -dracut-config-rescue
    
    %end
    
    %post --log=/var/log/anaconda/post-install.log
    
    #!/bin/bash
    
    Register Red Hat Subscription
    subscription-manager register --username=XXX --password=XXX --auto-attach --force
    
    Install latest repo update
    yum update -y
    
    Stop and Uninstall cloud-init
    systemctl stop cloud-init
    yum remove cloud-init
    
    Enable extras repo
    subscription-manager repos --enable=rhel-7-server-extras-rpms
    
    Install WALinuxAgent
    yum install -y WALinuxAgent
    
    Unregister Red Hat subscription
    subscription-manager unregister
    
    Enable waaagent at boot-up
    systemctl enable waagent
    
    Disable the root account
    usermod root -p '!!'
    
    Configure swap in WALinuxAgent
    sed -i 's/^\(ResourceDisk\.EnableSwap\)=[Nn]$/\1=y/g' /etc/waagent.conf
    sed -i 's/^\(ResourceDisk\.SwapSizeMB\)=[0-9]*$/\1=2048/g' /etc/waagent.conf
    
    Set the cmdline
    sed -i 's/^\(GRUB_CMDLINE_LINUX\)=".*"$/\1="console=tty1 console=ttyS0 earlyprintk=ttyS0 rootdelay=300"/g' /etc/default/grub
    
    Enable SSH keepalive
    sed -i 's/^#\(ClientAliveInterval\).*$/\1 180/g' /etc/ssh/sshd_config
    
    Build the grub cfg
    grub2-mkconfig -o /boot/grub2/grub.cfg
    
    Configure network
    cat << EOF > /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ONBOOT=yes
    BOOTPROTO=dhcp
    TYPE=Ethernet
    USERCTL=no
    PEERDNS=yes
    IPV6INIT=no
    NM_CONTROLLED=no
    EOF
    
    Deprovision and prepare for Azure
    waagent -force -deprovision
    
    %end
    
  2. インストール システムからアクセスできる場所に kickstart ファイルを置きます。Place the kickstart file where the installation system can access it.

  3. Hyper-V マネージャーで新しい仮想マシンを作成します。In Hyper-V Manager, create a new virtual machine. [仮想ハード ディスクの接続] ページで、 [後で仮想ハード ディスクを接続する] を選択し、仮想マシンの新規作成ウィザードを完了します。On the Connect Virtual Hard Disk page, select Attach a virtual hard disk later, and complete the New Virtual Machine Wizard.

  4. 仮想マシンの設定を開きます。Open the virtual machine settings:

    a.a. 新しい仮想ハード ディスクを仮想マシンに接続します。Attach a new virtual hard disk to the virtual machine. [VHD 形式][固定サイズ] を選択します。Make sure to select VHD Format and Fixed Size.

    b.b. インストール ISO を DVD ドライブに接続します。Attach the installation ISO to the DVD drive.

    c.c. CD から起動するように BIOS を設定します。Set the BIOS to boot from CD.

  5. 仮想マシンを開始します。Start the virtual machine. インストール ガイドが表示されたら、 Tab キーを押してブート オプションを構成します。When the installation guide appears, press Tab to configure the boot options.

  6. ブート オプションの最後に inst.ks=<the location of the kickstart file> を入力し、 Enterキーを押します。Enter inst.ks=<the location of the kickstart file> at the end of the boot options, and press Enter.

  7. インストールが完了するのを待ちます。Wait for the installation to finish. 完了すると、仮想マシンが自動的にシャットダウンされます。When it's finished, the virtual machine is shut down automatically. これで、Linux VHD を Azure にアップロードする準備が整いました。Your Linux VHD is now ready to be uploaded to Azure.

既知の問題Known issues

非 Hyper-V ハイパーバイザーの使用時に Hyper-V ドライバーを初期 RAM ディスクに含めることができないThe Hyper-V driver could not be included in the initial RAM disk when using a non-Hyper-V hypervisor

Hyper-V 環境で実行されていることを Linux が検出しなかった場合、Linux インストーラーは、初期 RAM ディスク (initrd または initramfs) に Hyper-V 用のドライバーを追加しないことがあります。In some cases, Linux installers might not include the drivers for Hyper-V in the initial RAM disk (initrd or initramfs) unless Linux detects that it is running in a Hyper-V environment.

別の仮想化システム (Oracle VM VirtualBox、Xen Project など) を使用して Linux イメージを準備する場合は、少なくとも hv_vmbus と hv_storvsc のカーネル モジュールを初期 RAM ディスクで使用できるように initrd の再構築が必要になる場合があります。When you're using a different virtualization system (that is, Oracle VM VirtualBox, Xen Project, etc.) to prepare your Linux image, you might need to rebuild initrd to ensure that at least the hv_vmbus and hv_storvsc kernel modules are available on the initial RAM disk. これは少なくとも、アップストリームの Red Hat ディストリビューションに基づくシステムの既知の問題です。This is a known issue at least on systems that are based on the upstream Red Hat distribution.

この問題を解決するには、initramfs に Hyper-V モジュールを追加して再構築する必要があります。To resolve this issue, add Hyper-V modules to initramfs and rebuild it:

/etc/dracut.conf を編集し、次の内容を追加します。Edit /etc/dracut.conf, and add the following content:

add_drivers+="hv_vmbus hv_netvsc hv_storvsc"

initramfs を再構築します。Rebuild initramfs:

dracut -f -v

詳細については、initramfs の再構築に関するページを参照してください。For more information, see rebuilding initramfs.

次の手順Next steps

これで、Red Hat Enterprise Linux 仮想ハード ディスクを使用して、Azure Stack に新しい仮想マシンを作成する準備が整いました。You're now ready to use your Red Hat Enterprise Linux virtual hard disk to create new virtual machines in Azure Stack. 初めて Azure Stack に VHD ファイルをアップロードする場合は、「Marketplace アイテムを作成および発行する」を参照してください。If this is the first time that you're uploading the VHD file to Azure Stack, see Create and publish a Marketplace item.

Red Hat Enterprise Linux の実行が認定されているハイパーバイザーの詳細については、Red Hat の Web サイトを参照してください。For more information about the hypervisors that are certified to run Red Hat Enterprise Linux, see the Red Hat website.