###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 05-015_ポート更新【LINUX系IPアドレス変更】 # # 内容: # 仮想サーバにアタッチされたポートのIPアドレスを変更する手順です。 # # 版数:v1.1 # 更新日:2017/12/04 ###################################################################### 手順: ─────────────────────────────────── 項番1.ポート確認 項番2.仮想サーバ確認 項番3.ポート更新 項番3-1.ポート更新 項番3-2.ポート確認 項番3-3.仮想サーバ確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ネットワーク ・サブネット ・ポート ・仮想サーバ ─────────────────────────────────── 注意事項: ・Windows仮想サーバのプライベートIPアドレスは変更できません。 ・仮想サーバのポートにグローバルIPが割り当てられている場合は、 事前にグローバルIPをポートから切り離してください。 ・ポート更新時には仮想サーバを停止してください。 項番1.ポート確認 IPアドレスを変更するポートの状態を確認します。 環境定義コマンド例: ====================================================================== # PORT_ID= PORT_ID=33bffd3a-2662-4331-8d6e-c63c1d00e291 API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/ports/$PORT_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "port": { "availability_zone": "jp-west-2a", "device_id": "79ac026b-c664-4f87-88fb-b59462d629u4", "security_groups": [ "beb2e81d-a67f-4d18-9270-93324f221076" ], "id": "33bffd3a-2662-4331-8d6e-c63c1d00e291", "fixed_ips": [ { "ip_address": "192.168.212.12", "subnet_id": "a6d8ecf7-385c-4ccd-8528-e2c0b4890684" } ], "mac_address": "fa:16:3e:8c:9f:33", "device_owner": "compute:jp-west-2a", "status": "ACTIVE", "name": "", "allowed_address_pairs": [], "admin_state_up": true, "network_id": "0e47de93-7142-4ff0-b7c3-5a1edfb192td", "tenant_id": "<プロジェクトID>", "extra_dhcp_opts": [], "binding:vnic_type": "normal" } } ====================================================================== 項番2.仮想サーバ確認 IPアドレスを変更する仮想サーバを確認し、仮想サーバが停止している ことを確認します。 "status": "SHUTOFF"であることを確認してください。 環境定義コマンド例: ====================================================================== # SERVER_ID= SERVER_ID=79ac026b-c664-4f87-88fb-b59462d629u4 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "metadata": {}, "config_drive": "", "OS-EXT-STS:power_state": 4, "accessIPv6": "", "accessIPv4": "", "os-extended-volumes:volumes_attached": [ { "id": "5a65453d-59be-45ab-a835-59272aedkrh3" } ], "OS-DCF:diskConfig": "MANUAL", "tenant_id": "<プロジェクトID>", "created": "2017-10-24T01:30:42Z", "name": "TEST_Server_01", "user_id": "ユーザID", "OS-EXT-AZ:availability_zone": "jp-west-2a", "OS-SRV-USG:terminated_at": null, "image": { "links": [ { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/images/c3867e5e-afd6-4858-918e-c445f9047d3h" } ], "id": "c3867e5e-afd6-4858-918e-c445f9047d3h" }, "key_name": "TEST_KEY_AZ1", "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/79ac026b-c664-4f87-88fb-b59462d629u4" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/servers/79ac026b-c664-4f87-88fb-b59462d629u4" } ], "addresses": { "TEST_Network_01": [ { "OS-EXT-IPS:type": "fixed", "addr": "192.168.212.12", "version": 4, "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:8c:9f:33" } ] }, "OS-EXT-SRV-ATTR:host": "jp3a01-pgy107-00", "hostId": "bd7b5e06d915bcfa6176464505438f9094778c55a95f56f8628kt36d", "updated": "2017-10-24T04:46:34Z", "status": "SHUTOFF", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "stopped", "OS-EXT-SRV-ATTR:instance_name": "instance-000195d5", "OS-SRV-USG:launched_at": "2017-10-24T01:32:08.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy107-00", "flavor": { "links": [ { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101" } ], "id": "1101" }, "id": "79ac026b-c664-4f87-88fb-b59462d629u4", "security_groups": [ { "name": "TEST_SG_01" } ] } } ====================================================================== 項番3.ポート更新 ポートの更新を行い仮想サーバのIPアドレスを変更し、IPアドレスが変更 されたことを確認します。 項番3-1.ポート更新 ポートの更新を行い、仮想サーバのIPアドレスを変更します。 環境定義コマンド例: ====================================================================== # PORT_ID= PORT_ID=33bffd3a-2662-4331-8d6e-c63c1d00e291 # FIXED_IP_ADDRESS=<変更後のIPアドレス> FIXED_IP_ADDRESS=192.168.212.100 API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/ports/$PORT_ID -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" -d '{"port": { "fixed_ips" : [{ "ip_address" : "'$FIXED_IP_ADDRESS'" }]}}' | jq . レスポンス例: ====================================================================== { "port": { "availability_zone": "jp-west-2a", "device_id": "79ac026b-c664-4f87-88fb-b59462d629u4", "security_groups": [ "beb2e81d-a67f-4d18-9270-93324f221076" ], "id": "33bffd3a-2662-4331-8d6e-c63c1d00e291", "fixed_ips": [ { "ip_address": "192.168.212.100", "subnet_id": "a6d8ecf7-385c-4ccd-8528-e2c0b4890684" } ], "mac_address": "fa:16:3e:8c:9f:33", "device_owner": "compute:jp-west-2a", "status": "ACTIVE", "name": "", "allowed_address_pairs": [], "admin_state_up": true, "network_id": "0e47de93-7142-4ff0-b7c3-5a1edfb192td", "tenant_id": "<プロジェクトID>", "extra_dhcp_opts": [], "binding:vnic_type": "normal" } } ====================================================================== 項番3-2.ポート確認 ポートを確認し、IPアドレスが変更されていることを確認します。 環境定義コマンド例: ====================================================================== # PORT_ID= PORT_ID=33bffd3a-2662-4331-8d6e-c63c1d00e291 API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/ports/$PORT_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "port": { "availability_zone": "jp-west-2a", "device_id": "79ac026b-c664-4f87-88fb-b59462d629u4", "security_groups": [ "beb2e81d-a67f-4d18-9270-93324f221076" ], "id": "33bffd3a-2662-4331-8d6e-c63c1d00e291", "fixed_ips": [ { "ip_address": "192.168.212.100", "subnet_id": "a6d8ecf7-385c-4ccd-8528-e2c0b4890684" } ], "mac_address": "fa:16:3e:8c:9f:33", "device_owner": "compute:jp-west-2a", "status": "ACTIVE", "name": "changeip_port", "allowed_address_pairs": [], "admin_state_up": true, "network_id": "0e47de93-7142-4ff0-b7c3-5a1edfb192td", "tenant_id": "<プロジェクトID>", "extra_dhcp_opts": [], "binding:vnic_type": "normal" } } ====================================================================== 項番3-3.仮想サーバ確認 仮想サーバを確認し、IPアドレスが変更されていることを確認します。 環境定義コマンド例: ====================================================================== # SERVER_ID= SERVER_ID=79ac026b-c664-4f87-88fb-b59462d629u4 API実行コマンド例: ====================================================================== curl -Ss $COMPUTE/v2/$PROJECT_ID/servers/$SERVER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "server": { "metadata": {}, "config_drive": "", "OS-EXT-STS:power_state": 4, "accessIPv6": "", "accessIPv4": "", "os-extended-volumes:volumes_attached": [ { "id": "5a65453d-59be-45ab-a835-59272aedkrh3" } ], "OS-DCF:diskConfig": "MANUAL", "tenant_id": "<プロジェクトID>", "created": "2017-10-24T01:30:42Z", "name": "TEST_Server_01", "user_id": "<ユーザID>", "OS-EXT-AZ:availability_zone": "jp-west-2a", "OS-SRV-USG:terminated_at": null, "image": { "links": [ { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/images/c3867e5e-afd6-4858-918e-c445f9047d3h" } ], "id": "c3867e5e-afd6-4858-918e-c445f9047d3h" }, "key_name": "TEST_KEY_AZ1", "links": [ { "rel": "self", "href": "http://10.27.0.201/v2/<プロジェクトID>/servers/79ac026b-c664-4f87-88fb-b59462d629u4" }, { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/servers/79ac026b-c664-4f87-88fb-b59462d629u4" } ], "addresses": { "TEST_Network_01": [ { "OS-EXT-IPS:type": "fixed", "addr": "192.168.212.100", "version": 4, "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:8c:9f:33" } ] }, "OS-EXT-SRV-ATTR:host": "jp3a01-pgy107-00", "hostId": "bd7b5e06d915bcfa6176464505438f9094778c55a95f56f8628kt36d", "updated": "2017-10-24T04:46:34Z", "status": "SHUTOFF", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "stopped", "OS-EXT-SRV-ATTR:instance_name": "instance-000195d5", "OS-SRV-USG:launched_at": "2017-10-24T01:32:08.000000", "OS-EXT-SRV-ATTR:hypervisor_hostname": "jp3a01-pgy107-00", "flavor": { "links": [ { "rel": "bookmark", "href": "http://10.27.0.201/<プロジェクトID>/flavors/1101" } ], "id": "1101" }, "id": "79ac026b-c664-4f87-88fb-b59462d629u4", "security_groups": [ { "name": "TEST_SG_01" } ] } } ====================================================================== 変更履歴: ─────────────────────────────────── v1.1版: ・ 「内容」:説明修正 ─────────────────────────────────── 以上