2.FJcloud-ベアメタル申請前の準備作業#

FJcloud-ベアメタルの申請時に必要となる情報を準備するまでの手順を説明します。


2-1. 申込書に必要な情報の確認#

FJcloud-ベアメタルを申し込むためには、「FUJITSU Hybrid IT Service FJcloud-ベアメタル申込書」が必要になります。弊社担当者までご連絡いただき、申込書を入手してください。

申込書には、以下の項目が必要となります。

また、事前にネットワーク構築が必要な項目も含まれています(構築手順は後述)。

No. 大項目 小項目 説明
1 ポータル利用情報 契約番号 契約番号を記入します。
2 利用開始希望日 不備のない申込書を受領後、利用開始までに最短5営業日頂きます。
3 申込内容 利用台数 希望するタイプの行にベアメタルサーバの利用台数を記入します。本ガイドでは2台を申請することとします。
ベアメタルサーバのタイプ別仕様はFUJITSU Hybrid IT Service FJcloud-ベアメタル サービス仕様書をご参照ください。
フレーバー名(表示名称)は自動入力されます。
4 ベアメタルサーバ 確認項目 申し込むサーバ1台ずつに以下の情報が必要になります。
4.1 ドメインID ドメインIDを記入します。
4.2 プロジェクトID プロジェクトIDを記入します。
4.3 ポート名/ポートID 事前に構築した管理ネットワーク [緑色] のポート名およびポートIDを記入します。 ※ベアメタルサーバ1台につき、最大4個の物理ポートが申請可能です。申請後はポートの追加・削除ができないため、申込み時に最大数(4個)の情報を記入します。
4.4 ネットワーク名/ ネットワークID 事前に構築した管理ネットワーク [緑色] のネットワーク名およびネットワークIDを記入します。
4.5 サブネット名/ サブネットID 事前に構築した管理ネットワーク [緑色] のサブネット名およびサブネットIDを記入します。
4.6 セキュリティグループ名/セキュリティグループID 事前に構築したベアメタルサーバ専用のセキュリティグループ名およびセキュリティグループIDを記入します。
4.7 サーバ名 サーバ名を記入します。ここでは、 1台目:"BareMetalSV1" 2台目:"BareMetalSV2" を設定します。
4.8 ルータID 事前に構築した管理ネットワーク [緑色] のルータIDを記入します。


2-2. 申込書に必要なネットワーク環境の構築#

ここでは、既にFJcloud-O IaaSをご利用しているお客様環境を用いて、ベアメタルサーバと接続する管理ネットワーク [緑色] 、およびベアメタルサーバ専用のセキュリティグループを構築する手順を説明します。


2-2-1. 契約関連情報取得#

  • ドメイン情報の取得

最初にドメイン情報を取得します。APIについては、既に操作経験があることを前提としていますので、不明な場合がありましたら「初期構築ガイド API実行編」や「APIリファレンス」などをご確認ください。

以下のAPIを用いてドメイン名およびドメインIDを取得します。

※ユーザー名(USER_NAME)やパスワード(USER_PW)は、お客様指定の情報をご利用ください。

export  PROJECT_NAME=fujitsuproject                                 # プロジェクト名
export  DOMAIN_NAME=fjdomain                                        # ドメイン名 
export  TOKEN=https://identity.jp-east-3.cloud.global.fujitsu.com   # APIエンドポイント    
 
curl  -k -X POST -s $TOKEN/v3/auth/tokens -H "Content-Type: application/json" -H  "Accept:application/json" -d  '{"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"'$DOMAIN_NAME'"},  "name": "'$USER_NAME'", "password": "'"$USER_PW"'"}}}, "scope": { "project":  {"name": "'$PROJECT_NAME'", "domain":{"name":"'$DOMAIN_NAME'"}}}}}' | jq -c -r  '.token.project| [.domain.name, .domain.id]'   
 
--  実行結果 -- 
["fjdomain","566dd64842b5409ab5f0cdb16ca8e2c9"]  # ドメイン名およびドメインID
  • プロジェクト情報の取得

以下のAPIを用いてプロジェクト情報を取得します。

curl  -k -X POST -s $TOKEN/v3/auth/tokens -H "Content-Type: application/json" -H  "Accept:application/json" -d  '{"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"'$DOMAIN_NAME'"},  "name": "'$USER_NAME'", "password": "'"$USER_PW"'"}}}, "scope": { "project":  {"name": "'$PROJECT_NAME'", "domain":{"name":"'$DOMAIN_NAME'"}}}}}' | jq -c -r  '.token| [.project.name, .project.id]'   
 
--  実行結果 -- 
["fujitsuproject","30084924102d41bf8d3d77a269f0333c"]   # プロジェクト名/プロジェクトID

申込書に記入するためにドメインIDおよびプロジェクトIDを控えておきます。


2-2-2. ネットワークからポートまでの作成手順#

ポートを作成するためには、以下の作業を実施する必要があります。

  • ネットワークの作成
  • サブネットの作成
  • 仮想ルータの作成
  • 仮想ルータを外部ネットワークに割当て
  • サブネットを仮想ルータに追加
  • セキュリティグループの作成
  • セキュリティグループルールの追加
  • ポートの作成

上記の作業手順を説明します。


(1) ネットワークの作成#

ベアメタル用のネットワークとして、管理用のネットワークを作成します。

img

ここでは、管理用のネットワークとして設定するため、ネットワーク名を”MgmtNW”として設定する例を説明します。以下のAPIを用いてネットワークを作成します。

export  NW_NAME=MgmtNW                                                 # ネットワーク名 
export  NETWORK=https://networking.jp-east-3.cloud.global.fujitsu.com  # APIエンドポイント   
 
curl  -s -k  $NETWORK/v2.0/networks -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN"  -H  "Content-Type: application/json" -d '{"network":{ "name": "'$NW_NAME'"}}' | jq  .

※NETWORK変数については、次回以降変数設定を省略します。

以下のAPIを用いてネットワークIDを確認します。

curl  -s -k  $NETWORK/v2.0/networks -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN"  -H  "Content-Type: application/json" | jq -c -r '.networks[]| [.name,  .id]'   
 --  実行結果 -- 
["MgmtNW","4ae0545c-54aa-465f-a661-78467eb4f8eb"] #  ネットワークID

申込書にネットワーク名およびネットワークIDが必要となりますので、内容を控えておきます。


(2) サブネットの作成#

サブネットを作成する手順を説明します。設定値は以下のように設定します。

  • サブネット名:“MgmtNWsub" ※管理用ネットワークのサブネット
  • ネットワークID:前の手順で作成したネットワークIDを設定
  • サブネットのCIDR:192.168.0.0/24
  • ゲートウェイIP(仮想ルータ):192.168.0.1
  • 割当てプール(開始アドレス):192.168.0.100 ※ベアメタルサーバ側で利用しないアドレス帯を指定
  • 割当てプール(終了アドレス):192.168.0.200 ※ベアメタルサーバ側で利用しないアドレス帯を指定

以下のAPIを用いてサブネットを作成します。

export  SUBNET=MgmtNWsub                                     # サブネット名  
export  NETWORK_ID=4ae0545c-54aa-465f-a661-78467eb4f8eb      # ネットワークID 
export  CIDR="192.168.0.0/24"                                # サブネットのCIDR 
export  GATEWAY_IP="192.168.0.1"                             # ゲートウェイIPアドレス 
export  ALLOCATION_POOLS_START="192.168.0.100"               # 割当てプール(開始アドレス) 
export  ALLOCATION_POOLS_END="192.168.0.200"                 # 割当てプール(終了アドレス)   
curl  -s -k $NETWORK/v2.0/subnets  -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type:  application/json" -d '{"subnet": {"name": "'$SUBNET'",   "network_id": "'$NETWORK_ID'", "cidr":  "'$CIDR'","ip_version": 4, "gateway_ip":  "'$GATEWAY_IP'", "allocation_pools": [{ "start": "'$ALLOCATION_POOLS_START'",  "end": "'$ALLOCATION_POOLS_END'" }] }}' | jq  .

※NETWORK_ID変数については、次回以降、変数設定を省略します。

以下のAPIを用いてサブネットIDを確認します。

curl  -s -k  $NETWORK/v2.0/subnets -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN"  -H  "Content-Type: application/json" | jq -c -r '.subnets[]| [.name,  .id]'   
 
--  実行結果 -- 
["MgmtNWsub","17e59fec-4494-4390-b528-073d1c2ebd3b"] #  サブネットID

申込書にサブネット名およびサブネットIDが必要となるため、内容を控えておきます。


(3) 仮想ルータの作成#

仮想ルータを作成します。

img

以下のAPIを用いて仮想ルータを作成します。

export  ROUTER=MGMT-RT   
 
curl  -s -k $NETWORK/v2.0/routers -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type: application/json" -d '{"router" : {"name" : "'${ROUTER}'"  ,"admin_state_up" : "true"}}' | jq .

以下のAPIを用いて仮想ルータIDを確認します。

curl  -s -k $NETWORK/v2.0/routers -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type: application/json" | jq -c -r '.routers[]| [.name,  .id]'   --  実行結果 -- ["MGMT-RT","368cb6b3-a91e-4eca-b323-d7a1b933ca89"] #  仮想ルータID

仮想ルータIDが申込書に必要となるため、内容を控えておきます。


(4) 仮想ルータを外部ネットワークに割当て#

仮想ルータを外部ネットワークに割り当てます。

img

以下のAPIを用いて仮想ルータの外部ネットワークIDを取得します。

curl  -s -k $NETWORK/v2.0/networks -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type: application/json" | jq -c -r '.networks[]| [.name, .id,  ."router:external"]'   
 
--  実行結果 -- 
["fip-net","ab80a32e-d389-4037-981e-0ca26e63f375",true] #  外部ネットワークID

以下のAPIを用いて仮想ルータを外部ネットワークに割当てます。

export  ROUTER_ID=368cb6b3-a91e-4eca-b323-d7a1b933ca89   # 仮想ルータID 
export  EXT_NW_ID=ab80a32e-d389-4037-981e-0ca26e63f375  # 外部ネットワークID   
 
curl  -k -s $NETWORK/v2.0/routers/${ROUTER_ID} -X PUT -H "X-Auth-Token:  $OS_AUTH_TOKEN" -H  "Content-Type: application/json" -d '{"router" :  {"external_gateway_info" : {"network_id": "'${EXT_NW_ID}'"}}}' | jq  .


(5) サブネットを仮想ルータに追加#

作成したサブネットを内部インターフェースとして仮想ルータに追加します。

img

以下のAPIを用いて内部インターフェースを追加します。

export  ROUTER_ID=368cb6b3-a91e-4eca-b323-d7a1b933ca89   #  仮想ルータID 
export  SUBNET_ID=17e59fec-4494-4390-b528-073d1c2ebd3b   #  サブネットID   
 
curl  -k -s $NETWORK/v2.0/routers/${ROUTER_ID}/add_router_interface -X PUT -H  "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d ' {  "subnet_id": "'${SUBNET_ID}'"}' | jq .


(6) セキュリティグループの作成#

セキュリティグループを作成します。

img

以下のAPIを用いてセキュリティグループを作成します。

export  SG_NAME=BareMetalSG 
export  STATEFUL="false"              #  ベアメタルサーバでは、ステートレス(false)を設定します※   
 
curl  -k -s $NETWORK/v2.0/security-groups -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type:  application/json" -d '{"security_group": {"name":   "'$SG_NAME'","stateful":"'$STATEFUL'"}}' | jq  .

※重要:ベアメタルサーバに設定するセキュリティグループは、設定項目 "stateful"を「false」にする必要があります。"stateful" に「false」が指定されていない場合、正常に通信できない可能性がありますのでご注意ください。

以下のAPIを用いてセキュリティグループ名およびセキュリティグループIDを確認します。

curl  -k -s $NETWORK/v2.0/security-groups -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type:  application/json"  | jq -c -r '.security_groups[]| [.name,  .id]'   
 
 --  実行結果 -- 
 ["BareMetalSG","6106399b-121f-4a9b-bfa3-39892790457a"] #  セキュリティグループID

申込書にセキュリティグループ名およびセキュリティグループIDが必要となりますので、内容を控えておきます。


(7) セキュリティグループルールの追加#

セキュリティグループのルールを8個(ingress 4個およびegress 4個)追加します。 FJcloud-ベアメタルのセキュリティグループは、statefulがfalse(ステートレス)で動作するため、ingressおよびegressの両方のセキュリティグループルール設定が必要になります。

Warning

FJcloud-ベアメタルでは、セキュリティグループに設定可能なルール数に上限(機能説明書-ネットワークに関する制限値)がありますのでご注意ください。

用途 方向 (direction) ネットワークトラフィックのIPタイプ(ethertype) CIDR (remote_ip_prefix)
管理用ネットワークへの通信 ingress / egress IPv4 192.168.0.0/24
業務用ネットワークへの通信 ingress / egress IPv4 192.168.1.0/24
ストレージ用ネットワークへの通信 ingress / egress IPv4 192.168.2.0/24
拠点側ネットワークへの通信 ingress/egress IPv4 192.168.246.0/24 ※SSL-VPN接続後に割り当てられるIPアドレス帯(初期構築ガイドのクライアントIPプール参照)

以下のAPIを参考に、すべてのセキュリティグループルールを追加してください。

以下の例では、管理用ネットワークへの通信のセキュリティグループルールを追加しています。この例を参考に全てのセキュリティグループルールをセキュリティグループに追加してください。

export  SG_ID=6106399b-121f-4a9b-bfa3-39892790457a   #  セキュリティグループID 
export  REMOTE_IP_PREFIX="192.168.0.0/24"            # ルールに関連付けるリモートIPのプレフィックス   
 
curl  -k -s $NETWORK/v2.0/security-group-rules -X POST -H "X-Auth-Token:  $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"security_group_rule":  {"direction": "ingress","ethertype": "IPv4","security_group_id": "'$SG_ID'",  "remote_ip_prefix": "'$REMOTE_IP_PREFIX'"}}' | jq  .

以下のAPIを用いて設定したセキュリティグループルール設定が8種類設定されていることを確認します。

curl  -k -s ${NETWORK}/v2.0/security-groups -X GET -H "X-Auth-Token: ${OS_AUTH_TOKEN}"  -H "Content-Type: application/json" -H "Accept: application/json"  | jq  .


(8) ポートの作成#

ベアメタルサーバの物理ポート(NIC)に接続するためのポート(親ポート)を作成します。本ガイドでは、2台のベアメタルサーバを申請するため、合計8個のポートを作成します。

img

以下のようにポートを8個分作成します。

名称 ネットワーク 仮想NIC種別 サブネット 固定IPアドレス セキュリティグループ
port11 MgmtNW baremetal MgmtNWsub 192.168.0.11 前述で設定したSGを設定
port12 同上 同上 同上 192.168.0.12 同上
port13 同上 同上 同上 192.168.0.13 同上
port14 同上 同上 同上 192.168.0.14 同上
port21 同上 同上 同上 192.168.0.21 同上
port22 同上 同上 同上 192.168.0.22 同上
port23 同上 同上 同上 192.168.0.23 同上
port24 同上 同上 同上 192.168.0.24 同上

以下の例では、port11のポートを作成しています。これを参考に、すべてのポートを作成します。ポート名およびポートのIPアドレスを上記の表のように設定します。

export  PORT_NAME=port11                                    # ポート名(port11の場合) 
export  FIXED_IP_ADDRESS=192.168.0.11                       #  IPアドレス 
export  NETWORK_ID=4ae0545c-54aa-465f-a661-78467eb4f8eb     # ネットワークID 
export  SUBNET_ID=17e59fec-4494-4390-b528-073d1c2ebd3b      # サブネットID 
export  SG_ID=6106399b-121f-4a9b-bfa3-39892790457a          #  セキュリティグループID   
 
curl  -k -s $NETWORK/v2.0/ports -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type: application/json" -d '{"port":{"network_id": "'$NETWORK_ID'",  "name": "'$PORT_NAME'","binding:vnic_type": "baremetal", "fixed_ips":  [{"subnet_id": "'$SUBNET_ID'", "ip_address": "'$FIXED_IP_ADDRESS'"}],  "security_groups": ["'$SG_ID'"]  }}' | jq  .

以下のAPIを用いて設定したポート名およびポートIDを確認します。

curl  -k -s $NETWORK/v2.0/ports -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H  "Content-Type: application/json" |  jq -c -r '.ports[]| [.name,  .id]'     
 
--  実行結果 --  
["**port11**","**1c9f3f04-ecd7-4138-8675-d0de5cf535be**"]  
["**port12**","**9ef477a4-a216-4aa8-aac9-7a682e8369db**"]  
["**port13**","**6e662f3a-ece4-4a82-b5d9-e43d8a7e4aa1**"]  
["**port14**","**4331de8b-e99b-448f-916d-80e41c827d1d**"]  
["**port21**","**bc0d5e39-c886-4114-9ada-a92ac69db729**"]  
["**port22**","**15ac5612-53b6-4578-80c1-95fe1f5eb1dc**"]  
["**port23**","**7d254043-5415-4e1a-9e85-d2a13fe2bfe2**"]  
["**port24**","**ce09adcd-b607-4d08-a3a8-7174540ecde2**"]

ポートの作成が完了したら、ポート名およびポートIDを確認し、申込書用に内容を控えておきます。