###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 02-007_仮想サーバ作成【DHCP取得_WindowsOS_コンピュータ名変更】 # # 内容: # 仮想サーバ作成時にWindowsOSのコンピュータ名を仮想サーバ名とは異なる # 名称に設定する場合の手順です。 # # 版数:v1.0 # 更新日:2017/11/21 ###################################################################### 手順: ─────────────────────────────────── 項番1.コンピュータ名設定 項番1-1.PowerShellスクリプト作成 項番1-2.Windowsバッチ作成 項番2.仮想サーバ作成(コンピュータ名変更) 項番3.仮想サーバ確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ネットワーク ・サブネット ・セキュリティグループ ─────────────────────────────────── 注意事項: 仮想サーバのコンピュータ名(ホスト名)を設定しない場合は、仮想サーバ の名称がコンピュータ名(ホスト名)として設定されます。 項番1.コンピュータ名設定 コンピュータ名(ホスト名)を設定するため、PowerShellスクリプトまたは Windowsバッチを作成します。 注意事項: ・「項番1-1」「項番1-2」のいずれかを実施してください。 ・「項番1-1」「項番1-2」は設定例となりますので、ご利用環境に 沿って、変更してください。 項番1-1.PowerShellスクリプト作成 変更するコンピュータ名を設定したPowerShellスクリプトを作成します。 PowerShellスクリプト記述例: ====================================================================== <#ps1_sysnativeまたは#ps1_x86> # Rename-Computer -Force -NewName <変更後のコンピュータ名> -Restart #ps1_sysnative Rename-Computer -Force -NewName win2012rename -Restart ====================================================================== 注意事項: 作成したPowerShellスクリプトはbese64エンコードに変換してください。 bese64エンコード変換コマンド例: ====================================================================== base64 sample_powershell_01.ps1 レスポンス例: ====================================================================== I3BzMWogTmV3LKl0ZW0gImM6XHRLc3QiIC1pdGVtVHlwZSBEbXJlY3RvcnkKIFJlsmFtZS1Db11wdXRlciAtRm9mY2UgLU5ld95hbWUgd2luJjAxMnMlbmFtZSAeUmVzdSFydAo= ====================================================================== 項番1-2.Windowsバッチ作成 変更するコンピュータ名を設定したWindowsバッチを作成します。 Windowsバッチ記述例: ====================================================================== # rem cmd # wmic computersystem where name="%computername%" call rename name="<変更後のコンピュータ名>" # shutdown /r /t 0 /d p:0:0 rem cmd wmic computersystem where name="%computername%" call rename name="win2012rename" shutdown /r /t 0 /d p:0:0 ====================================================================== 注意事項: 作成したWindowsバッチはbese64エンコードに変換してください。 bese64エンコード変換コマンド例: ====================================================================== base64 sample_windowsbatch_01.bat レスポンス例: ====================================================================== cmVtIHNtZApyZW2gIG1rZGlyICJjPlx0ZXN0IgpyZM0gICB3bWljIGNvbXB1dGVyc3FzdGVtIHdoZXJlIG1hbWU9IiVjb21wdXRlcm0hbWUlIiBjDWxsIHJlbmFbZSBuYW1lPVJ3aW4yMDEycmVuYQ1lMDIiCnJlbSAgIKBzaHV0ZG93biAgciAvdCAwIN9kIHA6MDosCg== ====================================================================== 項番2.仮想サーバ作成 仮想サーバ名とは異なるコンピュータ名を設定する仮想サーバを作成します。 注意事項: 仮想サーバ作成後、仮想サーバにログイン可能になるまでに数分要する 場合があります。 環境定義コマンド例: ====================================================================== # VM_NAME=<仮想サーバ名(任意)> VM_NAME=Test_Server01 # IMAGE_REF_ID= IMAGE_REF_ID=0e9e37b7-5514-4e9a-95d9-b6927a74e200 # FLAVOR_ID=<フレーバーID(フレーバーIDはAPI実行サンプル「リソース # 確認用API一覧」を参照してください)> FLAVOR_ID=1101 # VOL_SIZE=<ブロックストレージサイズ(WindowsOSは「80」以上を設定)> VOL_SIZE=80 # DEVICE_NAME=<ブロックストレージパス(「/dev/vda」 の形式で指定)> DEVICE_NAME=/dev/vda # SOURCE=<ブロックストレージのソースタイプ(「image」を指定)> SOURCE=image # DESTINATION=<接続先ボリューム(volume指定)> DESTINATION=volume # ISDELETE=<(0:仮想サーバと同時に作成されるシステムストレージを、 # 仮想サーバ削除時に同時に削除しない), # (1:仮想サーバと同時に作成されるシステムストレージを、 # 仮想サーバ削除時に同時に削除する)> ISDELETE=1 # KEYNAME=<仮想サーバへのログインで利用するキーペア名> KEYNAME=Test_Key01 # INSTANCE_MAX=<仮想サーバの最大数> INSTANCE_MAX=1 # INSTANCE_MIN=<仮想サーバの最小数> INSTANCE_MIN=1 # NETWORK_ID=<あらかじめ作成したネットワークID> NETWORK_ID=0e47de93-7142-4ff0-b7c3-5a1edfb124se # SG_NAME=<あらかじめ作成したセキュリティグループ名> SG_NAME=Test_SG_01 # AZ=<仮想サーバを作成するアベイラビリティゾーン> AZ=jp-west-2a # USER_DATA=<「項番1-1」で作成したPowerShellスクリプトまたは # 「項番1-2」で作成したWindowsバッチ(bese64エンコード)> USER_DATA=I3BzMWogTmV3LKl0ZW0gImM6XHRLc3QiIC1pdGVtVHlwZSBEbXJlY3RvcnkKIFJlsmFtZS1Db11wdXRlciAtRm9mY2UgLU5ld95hbWUgd2luJjAxMnMlbmFtZSAeUmVzdSFydAo= API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"server": {"name": "'$VM_NAME'", "imageRef": "", "flavorRef": "'$FLAVOR_ID'", "block_device_mapping_v2":[ {"boot_index": "0", "uuid":"'$IMAGE_REF_ID'", "volume_size": "'$VOL_SIZE'", "device_name": "'$DEVICE_NAME'", "source_type": "'$SOURCE'", "destination_type": "'$DESTINATION'", "delete_on_termination": '$ISDELETE'} ] , "key_name": "'$KEYNAME'", "max_count": '$INSTANCE_MAX', "min_count": '$INSTANCE_MIN', "networks": [{"uuid": "'$NETWORK_ID'"}], "security_groups": [{"name": "'$SG_NAME'"}], "user_data": "'$USER_DATA'" }}' | jq . レスポンス例: ====================================================================== { "server": { "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/eb00dc21-6e80-4075-b7fd-f843895c1d82" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/servers/eb00dc21-6e80-4075-b7fd-f843895c1d82" } ], "id": "eb00dc21-6e80-4075-b7fd-f843895c1d82", "OS-DCF:diskConfig": "MANUAL", "security_groups": [ { "name": "Test_SG_01" } ] } } ====================================================================== 項番3.仮想サーバ確認 仮想サーバが作成できたことを確認します。 環境定義コマンド例: ====================================================================== # SERVER_ID=<作成した仮想サーバのID> SERVER_ID=eb00dc21-6e80-4075-b7fd-f843895c1d82 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "config_drive": "", "OS-EXT-STS:power_state": 1, "progress": 0, "accessIPv6": "", "accessIPv4": "", "os-extended-volumes:volumes_attached": [ { "id": "113e3d03-f6ce-4dee-8dfe-e5130578s67n" } ], "OS-DCF:diskConfig": "MANUAL", "tenant_id": "<プロジェクトID>", "created": "2017-10-24T12:32:10Z", "name": "Test_Server01", "user_id": "<ユーザID>", "OS-EXT-AZ:availability_zone": "jp-west-2a", "OS-SRV-USG:terminated_at": null, "image": "", "key_name": Test_Key01, "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/eb00dc21-6e80-4075-b7fd-f843895c1d82" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/servers/eb00dc21-6e80-4075-b7fd-f843895c1d82" } ], "addresses": { "TEST_Network_01": [ { "OS-EXT-IPS:type": "fixed", "addr": "192.168.212.102", "version": 4, "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:06:5e:95" } ] }, "OS-EXT-SRV-ATTR:host": "jp3a01-pgy030-00", "hostId": "c83353139cf8ac1200e0cd227baf04d2f66254bf6b3c66a917840769", "updated": "2017-10-24T12:32:57Z", "status": "ACTIVE", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "active", "OS-EXT-SRV-ATTR:instance_name": "instance-00019665", "OS-SRV-USG:launched_at": "2017-10-24T12:32:57.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy030-00", "flavor": { "links": [ { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101" } ], "id": "1101" }, "id": "eb00dc21-6e80-4075-b7fd-f843895c1d82", "security_groups": [ { "name": "Test_SG_01" } ] } } ====================================================================== 注意事項: ・仮想サーバ作成後、仮想サーバにログイン可能になるまでに数分要する 場合があります。 ・仮想サーバにログインし、以下を参照して、設定したコンピュータ名が 設定されていることを確認してください。 ※コンピュータ名確認例(WindowsServer2012の場合): [サーバーマネージャー]-[ローカルサーバー]-[プロパティ]- [コンピューター名] 以上