1.3. Microsoft Azure のベースイメージの設定

ベースイメージには、Azure で RHEL 7 仮想マシンイメージとして機能するための設定変更が必要です。以下のセクションでは、Azure で必要な追加の設定変更を説明します。

1.3.1. Hyper-V デバイスドライバーのインストール

Microsoft は、Linux Integration Services (LIS) for Hyper-V パッケージの一部として、ネットワークおよびストレージデバイスのドライバーを提供しています。Hyper-V デバイスドライバーを Azure 仮想マシンとしてプロビジョニングする前に、仮想マシンイメージへのインストールが必要になる場合があります。lsinitrd | grep hv コマンドを使用して、ドライバーがインストールされていることを確認します。

手順

  1. 以下の grep コマンドを実行して、必要な Hyper-V デバイスドライバーがインストールされているかどうかを確認します。

    # lsinitrd | grep hv

    以下の例では、必要なドライバーがすべてインストールされています。

    # lsinitrd | grep hv
    drwxr-xr-x   2 root     root            0 Aug 12 14:21 usr/lib/modules/3.10.0-932.el7.x86_64/kernel/drivers/hv
    -rw-r--r--   1 root     root        31272 Aug 11 08:45 usr/lib/modules/3.10.0-932.el7.x86_64/kernel/drivers/hv/hv_vmbus.ko.xz
    -rw-r--r--   1 root     root        25132 Aug 11 08:46 usr/lib/modules/3.10.0-932.el7.x86_64/kernel/drivers/net/hyperv/hv_netvsc.ko.xz
    -rw-r--r--   1 root     root         9796 Aug 11 08:45 usr/lib/modules/3.10.0-932.el7.x86_64/kernel/drivers/scsi/hv_storvsc.ko.xz

    すべてのドライバーがインストールされていない場合は、残りの手順を完了してください。

    注記

    hv_vmbus ドライバーは、すでにこの環境に追加されている可能性があります。このドライバーが存在する場合でも、仮想マシンで次の手順を実行してください。

  2. /etc/hv.conf.dhv.conf という名前のファイルを作成します。
  3. 以下のドライバーパラメーターを dracut.conf ファイルに追加します。

    add_drivers+=" hv_vmbus "
    add_drivers+=" hv_netvsc "
    add_drivers+=" hv_storvsc "
    注記

    引用符の前後に空白に注意してください (例: add_drivers+=" hv_VMBus ")。これにより、環境内にその他の Hyper-V ドライバーが存在している場合に、一意のドライバーが読み込まれます。

  4. initramfs イメージを再生成します。

    # dracut -f -v --regenerate-all

検証手順

  1. マシンを再起動します。
  2. lsinitrd | grep hv コマンドを実行して、ドライバーがインストールされていることを確認します。

1.3.2. 追加の設定設定の変更

仮想マシンを Azure で動作するには、さらなる設定変更が必要です。追加の変更を行うには、以下の手順を行います。

手順

  1. 必要な場合は、仮想マシンの電源を入れます。
  2. 仮想マシンを登録し、Red Hat Enterprise Linux 7 リポジトリーを有効にします。

    # subscription-manager register --auto-attach

cloud-init (存在する場合) の停止および削除

  1. cloud-init サービスを停止します。

    # systemctl stop cloud-init
  2. cloud-init ソフトウェアを削除します。

    # yum remove cloud-init

その他の仮想マシン変更の完了

  1. /etc/ssh/sshd_config ファイルを編集し、パスワード認証を有効にします。

    PasswordAuthentication yes
  2. 一般的なホスト名を設定してください。

    # hostnamectl set-hostname localhost.localdomain
  3. /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを編集 (または作成) します。以下のパラメーターのみを使用してください。

    注記

    ifcfg-eth0 ファイルは、RHEL 7 DVD ISO イメージには存在しないため、作成する必要があります。

    DEVICE="eth0"
    ONBOOT="yes"
    BOOTPROTO="dhcp"
    TYPE="Ethernet"
    USERCTL="yes"
    PEERDNS="yes"
    IPV6INIT="no"
  4. すべての永続的なネットワークデバイスルールがある場合は削除します。

    # rm -f /etc/udev/rules.d/70-persistent-net.rules
    # rm -f /etc/udev/rules.d/75-persistent-net-generator.rules
    # rm -f /etc/udev/rules.d/80-net-name-slot-rules
  5. ssh が自動的に起動するように設定します。

    # systemctl enable sshd
    # systemctl is-enabled sshd
  6. カーネルブートパラメーターを変更します。

    1. /etc/default/grub ファイルの GRUB_CMDLINE_LINUX 行の先頭に crashkernel=256M を追加します。crashkernel=auto が存在する場合は、crashkernel=256M に変更します。
    2. 次の行がない場合は、GRUB_CMDLINE_LINUX 行の末尾に追加します。

      earlyprintk=ttyS0
      console=ttyS0
      rootdelay=300
    3. 以下のオプションが存在する場合は削除します。

      rhgb
      quiet
  7. grub.cfg ファイルを再生成します。

    # grub2-mkconfig -o /boot/grub2/grub.cfg
  8. Windows Azure Linux Agent (WALLinuxAgent) をインストールして有効にします。

    # yum install WALinuxAgent -y
    # systemctl enable waagent
    注記

    No package WALinuxAgent availableというエラーメッセージが表示された場合は、rhel-7-server-extras-rpms リポジトリーをインストールします。再度インストールを試行する前に、# subscription-manager repos --enable=rhel-7-server-extras-rpms コマンドを実行します。

  9. /etc/waagent.conf で以下の行を編集して、プロビジョニングされた仮想マシン用にスワップ領域を設定します。プロビジョニングされた仮想マシンに適した swap 領域を設定します。

    Provisioning.DeleteRootPassword=n
    ResourceDisk.Filesystem=ext4
    ResourceDisk.EnableSwap=y
    ResourceDisk.SwapSizeMB=2048

プロビジョニングの準備

  1. Red Hat Subscription Manager から仮想マシンの登録を解除します。

    # subscription-manager unregister
  2. 既存のプロビジョニングの詳細をクリーンアップして、Azure プロビジョニング用に仮想マシンを準備します。Azure は、仮想マシンを Azure に再プロビジョニングします。このコマンドは、データ損失の警告を生成しますが、これは正常です。

    # waagent -force -deprovision
  3. シェル履歴をクリーンアップし、仮想マシンをシャットダウンします。

    # export HISTSIZE=0
    # poweroff