第3章 ベアメタルインスタンスの起動

登録済みのベアメタルノードで、物理マシンをプロビジョニングします。インスタンスは、コマンドラインまたは OpenStack Dashboard で起動することができます。

3.1. コマンドラインインターフェースを使用したインスタンスのデプロイ

nova コマンドラインインターフェースを使用してベアメタルインスタンスをデプロイします。

コマンドライン上でのインスタンスのデプロイ

  1. Identity に管理ユーザーとしてアクセスするためのシェルを設定します。

    # source ~/keystonerc_admin
  2. インスタンスをデプロイします。

    # nova boot --nic net-id=NETWORK_UUID --flavor FLAVOR_NAME --image IMAGE_UUID INSTANCE_NAME

    以下の値を置き換えてください。

    • NETWORK_UUID は、Bare Metal Provisioning で使用するために作成したネットワークの一意識別子に置き換えます。
    • FLAVOR_NAME は、そのノード用に作成されたフレーバーの名前に置き換えます。
    • IMAGE_UUID は、Image サービスにアップロードされているディスクイメージの一意識別子に置き換えます。
    • INSTANCE_NAME は、ベアメタルインスタンスの名前に置き換えます。
  3. インスタンスのステータスを確認します。

    # nova list

3.2. Dashboard を使用したインスタンスのデプロイ

Dashboard のグラフィカルユーザーインターフェースを使用してベアメタルインスタンスをデプロイします。

Dashboard でのインスタンスのデプロイ

  1. https://DASHBOARD_IP/dashboard で Dashboard にログインします。
  2. プロジェクト > コンピュート > インスタンス をクリックします。
  3. インスタンスの起動 をクリックします。
  4. 詳細 タブで、以下のフィールドに必要事項を入力します。

    • インスタンス名 を指定します。
    • ベアメタルノード用に作成した フレーバー を選択します。
    • インスタンス数 のリストから 1 を選択します。
    • インスタンスのブートソース のリストから イメージから起動 を選択します。
    • イメージ名 のリストからオペレーティングシステムのディスクイメージを選択します。
  5. ネットワーク タブで、利用可能なネットワーク から 選択済みネットワーク に必要なネットワークをドラッグアンドドロップします。Bare Metal Provisioning 用に作成した共有ネットワークを選択するようにしてください。
  6. 起動 をクリックします。

3.3. Windows 全体のイメージの作成

以下の手順では、Windows Server 2012 のデプロイメントイメージを作成します。Red Hat Enterprise Linux システムで以下のステップを実行します。

  1. virtio-win ドライバーをダウンロードします。必要な手順 については、Red Hat カスタマーポータルを参照してください。

    この手順を実行すると、virtio-win .iso ファイルが /usr/share/virtio-win/ にダウンロードされます (例: /usr/share/virtio-win/virtio-win-1.8.0.iso)。

  2. virt-manager を使用して Windows Server 2012 のテンプレートを作成します。

    • Windows テンプレートの仮想ハードウェア要件を決定します。この例では、1 x CPU、4 GB メモリー、10 GB HDD、2 x NIC、2 x 仮想 CD-ROM ドライブを使用します。
    • qcow2 ファイルとしてディスクを作成します。
    • 仮想 HDD と NIC ドライバーの両方を virtio に設定します。
    • 仮想 CD-ROM ドライブ 2 台をアタッチして、Windows Server 2012 R2 .iso ファイルと、virtio-win-1.8.0.iso ファイルをマウントします。Windows のインストールプロセスで virtio-win ドライブをインストールできるようにするために、仮想 CD-ROM が 2 台必要です。
  3. ISO イメージから Windows を手動でインストールします。

    • Windows Server 2012 R2 評価版の .iso イメージから Windows のインストールを起動します。
    • HDD ドライバーを選択するように促された場合は、 virtio-win-1.8.0.iso ファイルを含む 2 番目の仮想 CD-ROM からドライバーを選択してください。
  4. Windows のインストール後のチェックを実行します。

    デバイスマネージャー を開き、すべてのデバイスが適切に認識されていることと、感嘆符 の警告が表示されていないことを確認します。特に、VirtIO を使用する NIC、シリアル、バルーンドライバーを確認してください。正しく認識されていないデバイスがある場合は、virtio-win ドライバーディスクからドライバーを適用します。

  5. sysprep を実行します。

    Sysprep は、Windows のインストールを一般化することで、以前実行した単一のインストールに固有のインストール情報を削除します。これにより、仮想マシンの仮想ハードディスクをテンプレートとして使用して、他のシステムに対して複数回インストールすることができます。

    1. C:\Windows\System32\sysprep\sysprep.exe から Sysprep を起動します。
    2. 以下の情報を Sysprep ツールに入力します。

      • システムクリーンアップアクション 下で、システムの OOBE (Out-of-Box-Experience) に入る を選択します。
      • 一般化 のチェックボックスを選択します。
      • シャットダウン のオプションで シャットダウン を選択します。
    3. OK をクリックして sysprep プロセスを完了します。プロセスが完了すると、仮想マシンは自動的にシャットダウンします。
  6. Image サービス (glance) に Windows のイメージを登録します。このステップで、glance に Windows インストールの qcow2 HDD を登録します。この例では、/root/win2012r2.qcow2 というディスクファイルを使用します。

    $ glance image-create --file /root/win2012r2.qcow2 --disk-format qcow2 --container-format bare --name win2012r2 --is-public True --progress
    [=============================>] 100%

3.3.1. Windows の物理サーバーへのデプロイ

  1. ハードウェアコンポーネントを指定して ironic に物理ノードを登録します。以下に例を示します。

    # ironic node-create -d fake_pxe -p cpus=1 -p memory_mb=1024 -p local_gb=15 -p cpu_arch=amd64
  2. 新規ノードの UUID を取得します。

    # ironic node-list
  3. Windows の物理ノードの MAC アドレスに一致するノードのポートを作成します。

    # ironic port-create -n [NODE_UUID] -a [NIC_MAC]

    例:

    # ironic port-create -n 3b3d3fd4-4621-427f-a78d-054a1ef17a0a -a 52:54:00:85:76:53
  4. ノードをメンテナンスモードに切り替えます。

    # ironic node-set-maintenance [NODE_UUID] true
    # ironic node-set-provision-state [NODE_UUID] manage
  5. 新規ノードのイントロスペクションを実行します。

    # openstack baremetal introspection start [NODE_UUID] --discoverd-url http://[KEYSTONE_URL]:5050
    • [KEYSTONE_URL] は、keystone サービスの IP アドレスに置き換えます。

      注記: FAKE_PXE ドライバーを使用する場合は、ironic node-list の状態が deploy wait-callback に変化した後に、手動でノードの電源を入れてください。

  6. イントロスペクションが完了したら、メンテナンスモードをオフにしてください。

    # ironic node-set-maintenance [NODE UUID] false
    # ironic node-set-provision-state [NODE UUID] provide
  7. インスタンスへの認証用キーペアを作成します。

    # nova keypair-add --pub_key ~/.ssh/id_rsa.pub [KEY_NAME]
  8. ノードのローカルブートを有効化します。

    # ironic node-update [NODE_UUID] add properties/capabilities="boot_option:local"
  9. nova を使用してノードを起動します。

    # nova boot --nic net-id=[NETWORK_UUID] --flavor [FLAVOR_NAME] --image [IMAGE_UUID/IMAGE_NAME] --keyname [INSTANCE_NAME]

    以下の値を置き換えてください。

    • [NETWORK_UUID] は、Bare Metal Provisioning で使用するために作成したネットワークの一意識別子に置き換えます。
    • [FLAVOR_NAME] は、そのノード用に作成されたフレーバーの名前に置き換えます。
    • [IMAGE_UUID] は、Image サービスにアップロードされているディスクイメージの一意識別子に置き換えます。
    • [INSTANCE_NAME] は、ベアメタルインスタンスの名前に置き換えます。
  10. インスタンスのパスワードを取得します。

    # nova get-password [INSTANCE_NAME]  /path/to/your/keypairs/private/key
  11. インスタンスのステータスを確認します。

    # nova list

Dashboard のコンソールを使用してインスタンスにアクセスすることで、さらにテストすることができます。

3.3.2. リモートデスクトップアクセスの有効化

  1. TCP/UDP 3389リモートデスクトップ のトラフィックを 許可するセキュリティーグループルールを追加します。
  2. nova コマンドを使用して、セキュリティーキーを取得します。

    # nova get-password [INSTANCE_NAME] /path/to/your/keypairs/private/key
    • [INSTANCE_NAME] は、ベアメタルインスタンスの名前に置き換えます。