Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

2.3.6. Microsoft Azure インストール

以下の手順を使用して、RHEL Atomic Host イメージを Microsoft Azure Cloud にアップロードし、そのイメージを仮想マシンとして実行します。RHEL サーバーシステムから実行する基本的な手順は次のとおりです。

  • Azure CLI の インストール で説明されているように、Azure CLI ツール(az コマンド)を 取得します。
  • Red Hat Atomic Host Download ページから Red Hat Atomic Cloud (qcow2)イメージを取得します。
  • イメージを VHD 形式に変換します。
  • Azure ログインアカウント を取得してログインします。
  • 以下の Azure リソースを作成します(または既存のリソースを使用します)。

    • ストレージアカウントの作成
    • コンテナーを作成します。
    • 仮想ネットワークおよびサブネットワークの作成
  • Atomic VHD イメージをアップロードします。
  • ゴールドイメージを作成します(オプション)。
  • RHEL Atomic VM を起動します。
  • Azure エージェントを仮想マシンに追加します(オプション)。

以下の例で使用されている以下のリソース名を、実際の設定に適したものに置き換えます。

リソース名

Azure グループ

myazgroup

Azure ストレージ

myatomicstorage

Azure コンテナー

myatomiccontainer

Azure 仮想ネットワーク

myazatomicnet01

Azure subnetwork

myazatomicsubnet01

Atomic イメージ

rhel-atomic-cloud-7.4.vhd

Azure リージョン

southcentralus (ユーザーに適した地域を使用)

Azure のアトミックイメージ

atomiccloud-74.vhd

Azure ゴールドイメージグループ

myatomicgold

Azure アカウントで、以下の手順を使用し、そのイメージを使用して Azure に Atomic 仮想マシンを作成します。

  1. Azure CLI ツールの取得: Install the Azure CLI の手順に従って az コマンドを取得します。
  2. Red Hat Atomic Host Download ページから Red Hat Atomic Cloud (qcow2)イメージを取得します。
  3. 以下のように、イメージを VHD 形式に変換します。

    $ qemu-img convert -f qcow2 -o subformat=fixed,force_size -O vpc \
        rhel-atomic-cloud-7.4.4-2.x86_64.qcow2 rhel-atomic-cloud-7.4.vhd
    注記

    Azure では、VHD イメージを修正して調整する必要があります。ここで説明されているイメージは正常に動作するはずです。後のステップでイメージをアップロードして実行できない場合は、RHEL 仮想マシンイメージの VHD への変換 の説明に従って、そのアライメントを確認し、修正し ます。

  4. Azure Cloud にログインします。

    $ az login
    
    To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code ABCDEFGH9 to authenticate.
    [
      {
        "cloudName": "AzureCloud",
    ...
        "user": {
          "name": "joe@example.com",
          "type": "user"
        }
      }
    ]

    ブラウザーからの指示に従い、ブラウザーウィンドウを閉じ、コマンドラインから続行します。

  5. Azure グループリソースの作成:Azure グループがまだない場合には、以下のように作成します。

    $ az group create --name myazgroup --location southcentralus
    
    {
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx.../resourceGroups/myazgroup",
      "location": "southcentralus",
      "managedBy": null,
      "name": "myazgroup",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null
    }
  6. 適切な Azure リージョンを選択します。Microsoft Azure リージョン を参照して利用可能なリージョンを表示し、以下を入力してリージョンを特定するために必要な名前を表示します。

    $ az account list-locations -o table
    DisplayName      Latitude    Longitude   Name
    ----------       ----------  ----------- ----------
    ...
    South Central US 29.4167     -98.5       southcentralus
    ...
  7. Azure ストレージアカウントの作成:グループの場合は、ストレージアカウントを作成し、southcentralus をリージョンに置き換え、SKU タイプ を選択します。

    $ az storage account create -l southcentralus -n myatomicstorage \
        -g myazgroup --sku Standard_LRS
    
    {
      "accessTier": null,
      "creationTime": "2018-01-23T16:14:51.478598+00:00",
    ...
      "id": "/subscriptions/xxxxxxxx-xxxx.../resourceGroups/myazgroup/providers/Microsoft.Storage/storageAccounts/myatomicstorage",
      "name": "myatomicstorage",
    ...
      "provisioningState": "Succeeded",
      "resourceGroup": "myazgroup",
    ...
  8. ストレージアカウントの接続文字列を取得します。

    $ az storage account show-connection-string -n myatomicstorage -g myazgroup
    
    {
      "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=myatomicstorage;AccountKey=xxxxxxxx/xxxxx+xxx/w=="
    }
  9. 接続文字列をエクスポートします。接続文字列を AZURE_STORAGE_CONNECTION_STRING 変数にコピーアンドペーストします。

    $ export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=myatomicstorage;AccountKey=xxxxxxxx/xxxxx+xxx/w=="
  10. ストレージコンテナーを作成します。

    $ az storage container create -n myatomiccontainer
    
    {
      "created": true
    }
  11. 仮想ネットワークとサブネットワークを作成します。

    $ az network vnet create -g myazgroup -n myazatomicnet01 \
       --subnet-name myazatomicsubnet01
    
    {
      "newVNet": {
        "addressSpace": {
          "addressPrefixes": [
            "10.0.0.0/16"
    ...
        "id": "/subscriptions/xxxxxxxx-xxxx.../resourceGroups/myazgroup/providers/Microsoft.Network/virtualNetworks/myazatomicnet01",
    ...
  12. Atomic VHD イメージをアップロードします。

    $ az storage blob upload --account-name myatomicstorage \
        --container-name myatomiccontainer --type page     \
        --file rhel-atomic-cloud-7.4.vhd --name myatomiccloud-74.vhd
    
    Finished[#####################]  100.0000%
    {
      "etag": "\"0x8D123456789ABCD\"",
      "lastModified": "2018-01-25T16:30:41+00:00"
    }
  13. アップロードした VHD の URL を取得します。

    $ az storage blob url -c myatomiccontainer -n myatomiccloud-74.vhd
    
    "https://myatomicstorage.blob.core.windows.net/myatomiccontainer/myatomiccloud-74.vhd"
  14. ゴールド Azure カスタム Atomic イメージの新規リソースグループを作成します(オプション): このオプションの手順では、作成した永続以外のリソースとは別のゴールドイメージを維持します。新しいリソースグループは、vhd ファイルをアップロードしたのと同じリージョンに作成する必要があります。

    $ az group create --name myatomicgold --location southcentralus
    
    {
      "id": "/subscriptions/xxxxxxxx-xxxx-.../resourceGroups/myatomicgold",
      "location": "southcentralus",
      "managedBy": null,
      "name": "myatomicgold",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null
    }
  15. Azure 用のゴールドイメージを作成します。

    $ az image create -n myrhelatomcloud74 -g myatomicgold -l southcentralus \
      --source \
      "https://myatomicstorage.blob.core.windows.net/myatomiccontainer/myatomiccloud-74.vhd" \
      --os-type linux
    
    {
      "additionalProperties": {},
      "id": "/subscriptions/xxxxxxxx-xxxx-.../resourceGroups/myatomicgold/providers/.../images/myrhelatomcloud74",
    ...
          "additionalProperties": {},
          "blobUri": "https://myatomicstorage.blob.core.windows.net/myatomiccontainer/myatomiccloud-74.vhd",
    ...
    }
  16. 仮想マシンの作成:この例では、myatomic74vm-1 という名前の実行中の仮想マシンを作成します。(注記:cloud-init スクリプトを作成し、コマンドラインに追加して、このコマンドラインをさらに設定できます。例: --custom-data RHELCloudInit.yml詳細は、Cloud-Init Support を参照してください。)

    $ az vm create -g myatomicgold -l southcentralus -n myatomic74vm-1 \
        --size Standard_A2 --os-disk-name vm-1-osdisk    \
        --admin-username clouduser --generate-ssh-keys --image myrhelatomcloud74
    
    {
      "fqdns": "",
      "id": "/subscriptions/xxxxxxxx-xxxx-.../resourceGroups/myatomicgold/providers/Microsoft.Compute/virtualMachines/myatomic74vm-1",
      "powerState": "VM running",
      "privateIpAddress": "10.0.0.5",
      "publicIpAddress": "49.82.154.297",
      "resourceGroup": "myatomicgold",
      "zones": ""
    }
  17. 仮想マシンにログインします。publicIpAddress (この偽のアドレスの49.82.154.297)をメモし、これを使用して仮想マシンにログインします。

    $ ssh clouduser@49.82.154.297
    The authenticity of host '49.82.154.297 (49.82.154.297)' can't be established.
    ECDSA key fingerprint is bd:fe:12:1b:3c:d3:e2:4c:9f:b5:4a:87:10:48:5d:92.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '49.82.154.297' (ECDSA) to the list of known hosts.
    [clouduser@myatomic74vm-1 ~]$
  18. システムをサブスクライブする:Red Hat サブスクリプションアカウントを使用して、システムをサブスクライブして最新バージョンの Atomic に更新します。

    $ sudo subscription-manager register
    Registering to: subscription.rhsm.redhat.com:443/subscription
    Username: yourusername
    Password: ********
    The system has been registered with ID: e4da51cb-4b89-3c94-30b5-946e5c222e91
    
    $ sudo subscription-manager subscribe --auto
    Installed Product Current Status:
    Product Name: Red Hat Enterprise Linux Atomic Host
    Status:       Subscribed
    Product Name: Red Hat Enterprise Linux Server
    Status:       Subscribed
    
    $ atomic host upgrade
    
    $ sudo reboot
  19. Azure エージェントを追加します(オプション): Azure Web ポータルでさらに高度な Azure 機能および精度が必要な場合は、Azure エージェントを Atomic ホストに追加することを検討してください。これを実行するには、以下のように、必要なリポジトリーを有効にし、WALinuxAgent パッケージを追加し、プロビジョニングを無効にし、Azure エージェントが起動するように設定します。

    $ ssh clouduser@41.89.184.287
    [clouduser@myatomic74vm-1 ~]$
    
    $ sudo subscription-manager repos --disable=*
    $ sudo subscription-manager repos --enable rhel-7-server-rpms \
       --enable rhel-7-server-extras-rpms
    $ sudo rpm-ostree install WALinuxAgent
    $ sudo systemctl reboot
    $ sudo vi /etc/waagent.conf
       # Enable instance creation
       Provisioning.Enabled=n
       # Create and use swapfile on resource disk.
       ResourceDisk.EnableSwap=y
       # Size of the swapfile.
       ResourceDisk.SwapSizeMB=2048    <-- or choose different size
    
    $ sudo systemctl enable waagent
    $ sudo systemctl start waagent

これで Atomic 仮想マシンが実行され、Azure ダッシュボードからアクセスできるはずです。