ロケーションへのベア・メタル・ホストの接続
ベア・メタル・ホストを Satellite のロケーションに接続できます。 ホストが接続された後、 Satellite に Red Hat OpenShift 仮想化をセットアップ できます。 仮想化を使用すると、管理対象 Red Hat OpenShift スペース内の Bare Metal Servers 上に Windows またはその他の仮想マシンをプロビジョンできます。
- サポートされるホスト・オペレーティング・システム
- Red Hat CoreOS (RHCOS)
以下のステップでは、 IBM Cloud® Bare Metal Servers for Classic を使用します。 ただし、これらのステップは、独自のベア・メタル・サーバーに適合させることができます。
前提条件
- RHCOS 対応のロケーションを作成します。 ロケーションで RHOS が有効になっているかどうかを確認するには、 Is my location enabled for Red Hat CoreOSを参照してください。 ロケーションが有効になっていない場合は、 RHCOS を使用して新しいロケーションを作成します。
- ホストをロケーションに接続し、 ロケーション・コントロール・プレーン をセットアップします。
- ベア・メタル・ホスト名を見つけて記録します。 この Bare Metal Serverの場合、この情報は、特定の Bare Metal Serversの 「概要」 ページの 「名前」 フィールドにあります。
- ベアメタル・サーバーのネットワーク情報を見つけます。 この Bare Metal Serverの場合、この情報は 「概要」 ページの 「ネットワークの詳細」 セクションにあります。 ご使用のシステムのパブリック・インターフェースとプライベート・インターフェースの CIDR およびゲートウェイ情報を記録します。
- 点火ファイルを保管する IBM Cloud Object Storage バケットを作成または識別します。
- サポートされるオペレーティング・システムを実行する Satellite ロケーション内でクラスターを作成または識別します。例えば、このチュートリアルでは、 4.11を実行している Red Hat OpenShift クラスターを使用します。
また、この例で使用されている Bare Metal Servers には、以下の前提条件が必要です。
- クラスターに複数の VLAN を使用する場合、同じ VLAN 上に複数のサブネットを使用する場合、またはマルチゾーン・クラシック・クラスターを計画する場合は、 アカウントで VRF を有効にします。
- ベア・メタル・ホストのゾーンごとに、同じ IBM Cloud データ・センター・ポッドに 2 つの VLAN ペア (パブリックとプライベート) を作成します。
- このチュートリアルの後の方で、 OpenShift Data Foundation for local disks をデプロイします。 このソリューションでは、ワーカー・ノード上に追加のストレージ・デバイスが必要です。
Bare Metal Server の要件
ベア・メタル・ホストを接続するには、 Bare Metal Server が以下の要件を満たしている必要があります。
- 仮想化テクノロジーをサポートする必要があります。
- Intel CPU の場合、仮想化のサポートは
Intel VT
またはVT-x
と呼ばれます。 - AMD CPU の場合、仮想化のサポートは
AMD Virtualization
またはAMD-V
と呼ばれます。
- Intel CPU の場合、仮想化のサポートは
- 最小 8 コアと 32 GB RAM、および vCPU オーバーヘッドに必要な追加コアを備えている必要があります。 詳しくは、 Red Hat OpenShift 資料の CPU オーバーヘッド を参照してください。
- ワークロードのニーズに対応する十分なメモリーを含める必要があります。 例:
360 MiB + (1.002 * requested memory) + 146 MiB + 8 MiB * (number of vCPUs) + 16 MiB * (number of graphics devices)
詳しくは、 Red Hat OpenShift 資料の メモリー・オーバーヘッド を参照してください。 - オペレーティング・システムがインストールされていません。 Red Hat CoreOS オペレーティング・システムは、このプロセスの後半でインストールされます。
- OpenShift Data Foundation をストレージ・ソリューションとして使用する場合は、プロビジョン時に Bare Metal Servers のそれぞれに 2 つのストレージ・ディスクを追加します。
ご使用のサーバーがこれらの要件を満たしていない場合は、 Bare Metal Serverを作成 できます。 ベア・メタル・オプションのリストについては、 ベア・メタル・サーバーで使用可能なオプション を参照してください。
Bare Metal Server をブートしています
この特定の Bare Metal Serverについては、 Java for Classic をサポートするブラウザーを使用する必要があります。 ローカル・システムで Safari ブラウザーを使用することも、 javaws
コマンドをサポートする Java バージョンをダウンロードすることもできます。
- Red Hat CoreOS ISOをダウンロードします。 使用する Red Hat OpenShift バージョンに一致する対応する ISO バージョンを見つけます。 マイナー・バージョンに一致する任意のイメージをダウンロードできます。
例えば、バージョン 4.11を使用する場合は、
rhcos-4.11.9-x86_64-live.x86_64.iso
のような 4.11用の RHCOS のバージョンをダウンロード します。 - ホスト・ネットワークにアクセスするには、VPN にログインします。 詳しくは、 IBM Cloudを参照してください。
- コンソールのデバイス・リストから、ベア・メタル・サーバーを選択します。
- 「概要」 ページで、サーバーのネットワーキング値をメモします。 CIDR およびゲートウェイ情報を見つけて確認します。
- 「リモート管理」 をクリックし、 「管理の詳細」 セクションの
User
とPassword
をメモします。 このユーザー名とパスワードは、後のステップで使用します。 - 「アクション」 アイコン
> KVM コンソール をクリックして、 Bare Metal Server コンソールを開きます。 ブラウザーに、安全でない自己署名証明書に関する警告が表示される場合があります。 続行するには、証明書をトラステッド CA 証明書としてブラウザーのトラストストアに追加してください。
- 先ほど取得した
User
およびPassword
を使用して、サーバーにログインします。 - 「システム」 タブの 「リモート・コンソール・プレビュー」 で、 「設定」 をクリックします。
- HTML5の代わりに Java を使用するようにインターフェースを変更するには、 Java を選択します。
- コンソール・プレビューをクリックして、
launch.jnlp
ファイルをダウンロードします。 - 端末ウィンドウを開き、
javaws <path_to_.jnlp>
コマンドを使用して前にダウンロードした.jnlp
ファイルを実行します。 Javaの更新を求めるプロンプトが出される場合があることに注意してください。 その場合は、プロンプトに従って Javaを更新してから、コマンドを再試行してください。 端末アプリの入力モニターを許可するようにプロンプトが出された場合、または Java コンソール・ウィンドウが異常終了した場合は、入力モニターのシステム設定を更新する必要があります。 この設定を更新するには、 「システム設定」>「セキュリティー」&「プライバシー」>「プライバシー」>「入力モニター」 に移動します。 次に、javaws <path_to_.jnlp>
コマンドを使用して Java コンソールを再起動します。 - コンソールがロードされたら、 「仮想メディア」>「仮想ストレージ」 を選択します。
- 「論理ドライブ・タイプ」 セクションで、 「ISO ファイル」 を選択します。
- 「イメージを開く (Open Image)」 をクリックし、ダウンロードした RHCOS ISO ファイルを選択します。
- 「プラグイン (Plug in)」 をクリックします。
- BIOS ログイン・プロンプトにアクセスするには、
exit
と入力します。 - BIOS プロンプトで Softlayer パスワードを入力します。
- 「拡張」 タブで、仮想化設定を探して有効にします。
- 「CPU 構成」 を選択します。
VTD
またはIntel Virtualization Technology
を探して、必ず有効にしてください。 Intel CPU の場合、サポートはIntel VT
またはVT-x
と呼ばれます。 AMD CPU の場合、サポート対象はAMD Virtualization
またはAMD-V
と呼ばれます。 詳しくは、ハードウェア・メーカーの資料を参照してください。- 有効になっていない場合は、
VTD
を有効にします。 詳しくは、ハードウェア・プロバイダーの資料を参照してください。
- ブート順序を構成します。 例えば、この Bare Metal Serverをインストールするには、仮想 ISO ファイルを使用できます。 特定のケースでは、別の外部ブート・デバイスを使用する場合があります。
- 「ブート」 を選択します。
- 仮想 ISO からブートするオプションを選択します。
Hard Drive
がブート順序のオプションでもあることを確認します。
- 選択内容を保存して終了します。 例えば、この Bare Metal Serverの場合、 「保存して終了」 をクリックします。
- 変更を保存し、インストール・プロセスを開始します。 例えば、この Bare Metal Serverの場合、 「変更を保存してリセット」 をクリックします。
保存して終了すると、RHCOS はインストールを開始します。 次回システムをリブートすると、システムは RHCOS をメモリー内にブートします。
メモリーの上書きと破損を防ぐために、以下のセクションをすぐに実行してください。
パブリック・ネットワーキングのセットアップ
ホスト接続スクリプト (RHCOS 点火ファイル) をダウンロードするには、ベア・メタル・マシンのパブリック・ネットワーク接続をセットアップする必要があります。 プライベート・インターフェースとパブリック・インターフェースを識別します。 RHCOS は、ネットワーク・インターフェース名を eno
または ens
に変換します。 この Bare Metal Serverの場合、パブリック・インターフェースは eth1
で、プライベート・インターフェースは eth0
です。
RHCOS がメモリー内にブートされると、 core@localhost
プロンプトが使用可能になります。 以下の手順に従って、ベア・メタル・サーバーのネットワーク接続をセットアップします。
core@localhost
プロンプトで、ifconfig
を実行して、どのインターフェースがパブリック・インターフェースであるかを判別します。 ベアメタルのフレーバーによっては、有線接続のセットアップが異なる場合があります。 このセットアップでは、パブリック・インターフェースは有線接続 3 と 5、プライベート・インターフェースは有線接続 2 と 4 でした。 この情報は、ifconfig
コマンドの出力にあります。core@localhost
プロンプトで、sudo nmtui
と入力します。- 「接続の編集」 をクリックします。
- アクティブ化する有線接続ごとに、 IPv4 「構成」>「手動」 をクリックします。
- 「表示」 を選択します。
- 「アドレス」 に CIDR を入力します。 CIDR は、そのサブネットの IP アドレスとサブネット・マスクです。
- 「ゲートウェイ」 にゲートウェイを入力します。
- DNS サーバー情報を追加します。 例えば、この Bare Metal Serverの場合、これらの値は、パブリック・インターフェースの場合は
8.8.8.8
と4.4.4.4
、プライベート・インターフェースの場合は10.0.80.11
と10.0.80.12
です。 - アクティブ化する有線接続ごとに、これらのステップを繰り返します。
- 完了したら、 「OK」、 「終了」 を選択します。
- サーバー・ネットワークを ping して、接続が確立されていることをテストします。 例えば、この特定の Bare Metal Serverのパブリック・ネットワークをテストするには、
ping 8.8.8.8
とします。
イグニッション・ファイルの構成
igntion ファイルを構成するには、以下のステップを実行します。 イグニッション・ファイルは、ベア・メタル・サーバーをホストとして Satellite に添付するために使用されます。
ロケーションに接続するベア・メタル・ホストごとに別個のイグニッション・ファイルを構成する必要があります。
-
自分のロケーションのホスト接続スクリプトをダウンロードします。 ホスト・オペレーティング・システムには必ず
RHCOS
を指定してください。 -
ベアメタル・システムのホスト名を取得します (例:
mybaremetalserver
)。 -
以下のコマンドを実行して、ホスト名を
base64
に変換します。<hostname>
は、ご使用のベアメタル・サーバーのホスト名に置き換えてください。echo <hostname> | base64
-
点火ファイルを開き、ホスト名情報を
"storage":{"files":[
セクションに追加します。<hostname>
を、前のステップの base64 エンコード出力に置き換えます。{"overwrite": true,"path": "/etc/hostname","mode": 600,"contents": {"source": "data:text/plain;base64,<hostname>"},},],}
ホスト名
mybaremetalserver
を持つ ignnition ファイルの最初のブロックを以下の例に示します。{"ignition":{"version":"3.1.0"},"passwd":{"users":[{"name":"core","sshAuthorizedKeys":[""]}]},"storage":{"files":[{"overwrite": true,"path": "/etc/hostname","mode": 600,"contents": {"source": "data:text/plain;base64,bXliYXJlbWV0YWxzZXJ2ZXIK"}},{"overwrite":true,"path":"/usr/local/bin/ibm-host-attach.sh","contents":{"source":"data:text/plain;base64, ...
-
以下のコマンドを実行して、プライベート・ネットワーキング情報を
base64
に変換します。<private_interface>
を、ご使用のプライベート・インターフェースの名前 (en01
など) に置き換えます。<privateIPCIDR>
と<gateway>
をプライベート IP CIDR とゲートウェイに置き換えます。 これらの値は、前のセクションで接続をセットアップするために使用した値です。echo '[connection] id=<private-interface-name> type=ethernet interface-name=<private-interface-name> [ipv4] never-default=true address1=<private-ip-cidr>,<gateway> dns=10.0.80.11;10.0.80.12; route1=10.0.0.0/8,<gateway> route2=161.26.0.0/16,<gateway> route3=166.8.0.0/14,<gateway> dns-search= may-fail=false method=manual' | base64
以下に例を示します。
echo '[connection] id=eno1 type=ethernet interface-name=eno1 [ipv4] never-default=true address1=10.190.196.9/26,10.190.196.129 dns=10.0.80.11;10.0.80.12; route1=10.0.0.0/8,10.190.96.129 route2=161.26.0.0/16,10.190.96.129 route3=166.8.0.0/14,10.190.96.129 dns-search= may-fail=false method=manual' | base64
-
これらの接続詳細を点火ファイルに追加します。
<private_interface>
を、ご使用のプライベート・インターフェース名 (eno1
など) に置き換えます。<private_connection_details>
を、前のステップの base64 エンコード出力に置き換えます。{"overwrite": true,"path": "/etc/NetworkManager/system-connections/<private_interface>.nmconnection","mode": 256,"contents": {"source": "data:text/plain;base64,<private_connection_details>"}}
例えば、前のステップのネットワーキング情報を追加するには、以下のコード・サンプルを入力します。
{ "overwrite": true,"path": "/etc/NetworkManager/system-connections/en01.nmconnection","mode": 256,"contents": { "source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dCiAgICAgIGlkPWVubzEKICAgICAgdHlwZT1ldGhlcm5ldAogICAgICBpbnRlcmZhY2UtbmFtZT1lbm8xCiAgICAgIFtpcHY0XQogICAgICBuZXZlci1kZWZhdWx0PXRydWUKICAgICAgYWRkcmVzczE9MTAuMTkwLjE5Ni45LzI2LDEwLjE5MC4xOTYuMTI5CiAgICAgIGRucz0xMC4wLjgwLjExOzEwLjAuODAuMTI7CiAgICAgIHJvdXRlMT0xMC4wLjAuMC84LDEwLjE5MC45Ni4xMjkKICAgICAgcm91dGUyPTE2MS4yNi4wLjAvMTYsMTAuMTkwLjk2LjEyOQogICAgICByb3V0ZTM9MTY2LjguMC4wLzE0LDEwLjE5MC45Ni4xMjkKICAgICAgZG5zLXNlYXJjaD0KICAgICAgbWF5LWZhaWw9ZmFsc2UKICAgICAgbWV0aG9kPW1hbnVhbAo="}},
-
以下のコマンドを実行して、パブリック・ネットワーキング情報を
base64
に変換します。<public_interface>
をパブリック・インターフェース名 (例えば、eno2
) に置き換えます。<publicIPCIDR>
と<gateway>
を、パブリック IP CIDR とパブリック IP ゲートウェイに置き換えます。 これらの値は、前のセクションで接続をセットアップするために使用した値です。echo '[connection] id=<public_interface> type=ethernet interface-name=<public_interface> [ipv4] address1=<publicIPCIDR>,<gateway> dns=8.8.8.8;4.4.4.4; dns-search= may-fail=false method=manual' |base64
パブリック・インターフェースの詳細を base64 でエンコードするためのコマンド例。
echo '[connection] id=eno2 type=ethernet interface-name=eno2 [ipv4] address1=52.117.108.24/28,52.117.108.17 dns=8.8.8.8;4.4.4.4; dns-search= may-fail=false method=manual' |base64
-
これらの接続詳細を点火ファイルに追加します。
<public_interface>
を、ご使用のパブリック・インターフェース名 (例えば、eno2
) に置き換えます。<public_connection_details>
を、前のステップの base64 エンコード出力に置き換えます。{"path": "/etc/NetworkManager/system-connections/<public_interface>.nmconnection","mode": 256,"contents": {"source": "data:text/plain;base64,<public_connection_details>"}}
例えば、前のステップのネットワーキング情報を追加するには、以下のコード・サンプルを、プライベート・インターフェース・コード・サンプルの直後に入力します。
{"path": "/etc/NetworkManager/system-connections/en02.nmconnection","mode": 256,"contents": {"source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dCiAgICBpZD1lbm8yCiAgICB0eXBlPWV0aGVybmV0CiAgICBpbnRlcmZhY2UtbmFtZT1lbm8yCiAgICBbaXB2NF0KICAgIGFkZHJlc3MxPTUyLjExNy4xMDguMjQvMjgsNTIuMTE3LjEwOC4xNwogICAgZG5zPTguOC44Ljg7NC40LjQuNDsKICAgIGRucy1zZWFyY2g9CiAgICBtYXktZmFpbD1mYWxzZQogICAgbWV0aG9kPW1hbnVhbAo="}},
-
点火ファイルを保存します。 ファイルはフラットでなければならず、返品が含まれていてはなりません。 以下のイグニッション・ファイルの例は、
mybasemetalserver
の前のステップで行われた追加を示しています。{ "ignition": { "version": "3.1.0" }, "storage": { "files": [ { "overwrite": true, "path": "/etc/hostname", "mode": 600, "contents": { "source": "data:text/plain;base64,ay1jY3BtYmhldzA0ZGp2ZXNvYmw4Zy1ibS0xCg==" } }, { "overwrite": true, "path": "/etc/NetworkManager/system-connections/en01.nmconnection", "mode": 256, "contents": { "source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dCmlkPWVubzEKdHlwZT1ldGhlcm5ldAppbnRlcmZhY2UtbmFtZT1lbm8xCltpcHY0XQpuZXZlci1kZWZhdWx0PXRydWUKYWRkcmVzczE9IDEwLjE3MC4xNS42NS8yNiwxMC4xNzAuMTUuNjUKZG5zPTEwLjAuODAuMTE7MTAuMC44MC4xMjsKcm91dGUxPTEwLjAuMC4wLzgsMTAuMTcwLjE1LjY1CnJvdXRlMj0xNjEuMjYuMC4wLzE2LDEwLjE3MC4xNS42NQpyb3V0ZTM9MTY2LjguMC4wLzE0LDEwLjE3MC4xNS42NQpkbnMtc2VhcmNoPQptYXktZmFpbD1mYWxzZQptZXRob2Q9bWFudWFsCg==" } }, { "path": "/etc/NetworkManager/system-connections/en02.nmconnection", "mode": 256, "contents": { "source": "data:text/plain;base64,W2Nvbm5lY3Rpb25dICAgICAgICAgICAgICAgICAgICAgICAgIAppZD1lbm8yCnR5cGU9ZXRoZXJuZXQKaW50ZXJmYWNlLW5hbWU9ZW5vMgpbaXB2NF0KYWRkcmVzczE9MTY5LjQ1LjIzNS4yMTQvMjgsMTY5LjQ1LjIzNS4yMDkKZG5zPTguOC44Ljg7NC40LjQuNDsKZG5zLXNlYXJjaD0KbWF5LWZhaWw9ZmFsc2UKbWV0aG9kPW1hbnVhbAo=" } }, { "overwrite": true, "path": "/usr/local/bin/ibm-host-attach.sh", "contents": { "source": "data:text/plain;base64,<omitted>" }, "mode": 493 } ] }, "systemd": { "units": [ { "contents": "[Unit]\nDescription=IBM Host Attach Service\nWants=network-online.target\nAfter=network-online.target\n[Service]\nEnvironment=\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\nExecStart=/usr/local/bin/ibm-host-attach.sh\nRestart=on-failure\nRestartSec=5\n[Install]\nWantedBy=multi-user.target", "enabled": true, "name": "ibm-host-attach.service" } ] } } ... "},"mode":493}]},"systemd":{"units":[{"contents":"[Unit]\nDescription=IBM Host Attach Service\nWants=network-online.target\nAfter=network-online.target\n[Service]\nEnvironment=\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\nExecStart=/usr/local/bin/ibm-host-attach.sh\nRestart=on-failure\nRestartSec=5\n[Install]\nWantedBy=multi-user.target","enabled":true,"name":"ibm-host-attach.service"}]}}
-
以前に識別した IBM Cloud Object Storage バケットにイグニッション・ファイルをアップロードします。 コンソールの 「バケット」 ページで、 「オブジェクトの追加」 をクリックします。 イグニッション・ファイルをバケットにドラッグします。
ロケーションへのベア・メタル・ホストの接続
イグニッション・ファイルをベア・メタル・ホストにダウンロードして実行し、ベア・メタル・ホストを Satellite のロケーションに接続します。
-
以下のコマンドを実行して、バケットからホスト・マシンにファイルをダウンロードします。
<bucketname>
を IBM Cloud Object Storage バケットの名前に、<cos_region>
をバケットの地域 (例えば、us.east
) に、<filename>
をバケット内の ignnition ファイルの名前に、それぞれ置き換えます。以下の例から
> ignition.ign
を削除することにより、ベアメタル・サーバー上にローカル・ファイルを作成せずにcurl
コマンドを実行して、ベアメタル・サーバーがバケットに到達できるようにすることができます。curl https://<bucketName>.s3.<cos_region>.cloud-object-storage.appdomain.cloud/<filename> > ignition.ign
以下に例を示します。
curl https://mybucket.s3.us-east.cloud-object-storage.appdomain.cloud/attachHostmysatloc.ign > ignition.ign
-
CoreOS オペレーティング・システムをインストールするディスクを識別します。 ディスクを識別するには、
lsblk
を実行します。lsblk
以下の例は、表示される可能性のある出力です。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 15.5G 0 loop /run/ephemeral loop1 7:1 0 979.1M 1 loop /sysroot sda 8:0 0 1.8T 0 disk sr0 11:0 1 1.1G 0 rom. /run/media/iso
この出力から、
sda
ディスクへのインストールを選択します。 -
以下の
install
コマンドを実行して、ignnition ファイルを開始します。<diskName>
を、lsblk
から取得したディスクの絶対パスに置き換え、<filename>
を、 IBM Cloud Object Storageからダウンロードしたファイルの名前に置き換えます。sudo coreos-installer install <diskName> --ignition-file <filename>
以下の例は、
./ignition.ign
という名前のイグニッション・ファイルを使用して/dev/sda
ディスクにインストールするコマンドを示しています。sudo coreos-installer install /dev/sda --ignition-file ./ignition.ign
インストール・プロセスは、完了までに 1 時間から 2 時間かかることがあります。
-
インストールが完了したら、RHCOS ISO ファイルのプラグを抜き、ハード・ディスクからリブートします。
- BIOS ログインにアクセスするには、
exit
と入力します。 - BIOS プロンプトで Softlayer パスワードを入力します。
- 「ブート」 を選択します。
- ハード・ディスクからブートする場合に選択します。
- **「保存して終了」**をクリックします。
- 「変更を保存してリセット」 をクリックします。
- BIOS ログインにアクセスするには、
-
Satellite のロケーションを調べて、ベア・メタル・サーバーが接続されていることを確認します。
おめでとうございます! これで、 Bare Metal Server がロケーションに接続されました。
Bare Metal Server ホストを Red Hat OpenShift クラスターに割り当てる
Bare Metal Server を自分のロケーションに接続した後、それを Red Hat OpenShift クラスター・ワーカー・プールに割り当てることができます。
-
Red Hat OpenShift クラスター・ワーカー・プールに追加するホストを見つけます。
ibmcloud sat hosts --location <locationID>
-
Bare Metal Server を Red Hat OpenShift クラスター・ワーカー・プールに割り当てます。
ibmcloud sat host assign --location <locationID> --cluster <clusterID> --host <hostID> --worker-pool default --zone <zone>
このチュートリアルを繰り返して、追加の Bare Metal Servers をロケーションとクラスターに接続します。
Bare Metal Server がワーカー・プールに割り当てられたので、 Red Hat OpenShift 仮想化をセットアップ できます。