このエントリーをはてなブックマークに追加

4.1.2. novaコマンド

Openstackのコマンドは数多く有ります。
このページは nova のコマンドについて記述します。

4.1.2.1. 環境変数について

nova コマンドを利用するためには環境変数のファイルを作成して読み込ませるなどしたほうがコマンド実行時にいちいち指定する必要がなくなり便利になります。

変数名 設定例 備考
OS_NO_CACHE True パスワードをキャッシュします。デフォルトでキャッシュされるようになりました。
ADMIN_TOKEN ADMIN Keystoneを利用するためのトークンを設定します。 Keystone に設定したものになります。
OS_USERNAME admin プロジェクトを利用するユーザを設定します。
OS_PASSWORD secrete プロジェクトを利用するユーザのパスワードを設定します。
OS_TENANT_NAME admin テナント名を設定します。プロジェクト名のことになります。
OS_AUTH_URL http://stack01:5000/v2.0/ /etc/nova/api-paste.ini に設定したものを設定します。
例えば以下のようなファイルを作成して nova コマンド実行前に実行しておきます。
利用するプロジェクト毎に作成します。
$ cat << 'NOVARC' | sudo tee -a /home/stack/novarc > /dev/null
export ADMIN_TOKEN=ADMIN
export OS_USERNAME=admin
export OS_PASSWORD=secrete
export OS_TENANT_NAME=demo
export OS_AUTH_URL=http://stack01:5000/v2.0/
NOVARC
$ chmod 600 /home/stack/novarc
$ . /home/stack/novarc
$ nova list

4.1.2.2. コマンドオプション

オプション 概要
–version バージョンを表示します。 バグりますけど。
–debug デバッグモードで表示します。
–os-cache トークンキャッシュを利用します。
–timings コマンドを実行するのにかかった時間を表示します。
–timeout <seconds> コマンド実行時のタイムアウトを指定します。
–os-username <auth-user-name> ユーザ名を指定します。環境変数は、[OS_USERNAME] です。
–os-password <auth-password> パスワードを指定します。環境変数は、[OS_PASSWORD]です。
–os-tenant-name <auth-tenant-name> プロジェクト名を指定します。環境変数は、[OS_TENANT_NAME]です。
–os-auth-url <auth-url> 認証を行うURLを指定します。環境変数は、[OS_AUTH_URL]です。
–os-region-name <region-name> リージョン名を指定します。環境変数は、[OS_REGION_NAME]です。
–os-auth-system <auth-system> 認証システムを指定します。環境変数は、[OS_AUTH_SYSTEM]です。
–service-type <service-type> サービスタイプを指定します。
–service-name <service-name> サービス名を指定します。環境変数は、[NOVA_SERVICE_NAME]です。
–volume-service-name <volume-service-name> ボリュームサービス名を指定します。環境変数は、[NOVA_VOLUME_SERVICE_NAME]です。
–endpoint-type <endpoint-type> エンドポイントタイプを指定します。環境変数は、[NOVA_ENDPOINT_TYPE]です。
–os-compute-api-version <compute-api-ver> APIのバージョンを指定します。環境変数は、[OS_COMPUTE_API_VERSION]です。
–os-cacert <ca-certificate> 認証ファイルを指定します。環境変数は、[OS_CACERT]です。
–insecure SSLを利用しません。
–bypass-url <bypass-url> サービスカタログの代わりのためのエンドポイントを指定します。

4.1.2.3. コマンド

nova コマンドは非常に多いですがコマンドラインで Openstack を利用する際には絶対に必要になります。
全てを覚えておく必要はありませんがよく使うコマンドは覚えておくに越したことは無いでしょう。
コマンド 概要 備考
nova absolute-limits ユーザの設定値の限界を表示する  
nova actions <server> サーバのアクションを取得する  
nova add-fixed-ip <server> <network_id> 内部ネットワークの新規追加を行う 内部ネットワークは nova.conf で記述してあるのであまり利用しないと思います
nova add-floating-ip <server> <address> nova floating-ip-create で作成したフローティングIPをサーバに付与する <server>Name でなく ID を指定します。
nova add-secgroup <server> <secgroup> セキュリティグループを作成する  
nova agent-create <os> <architecture> <version> <url> <md5hash> <hypervisor> エージェントを作成する  
nova agent-delete <id> エージェントを削除する  
nova agent-list エージェントを表示する  
nova agent-modify エージェントを変更する  
nova aggregate-add-host <id> <host> ホストを指定された ID のアグリゲートへ追加する  
nova aggregate-create <name> <availability_zone> availability_zone に指定した名前のアグリゲートを作成する  
nova aggregate-delete <id> 指定した ID のアグリゲートを削除する  
nova aggregate-details <id> 指定した ID のアグリゲートの詳細を表示する  
nova aggregate-list アグリゲートのリストを表示する  
nova aggregate-remove-host <id> <host> アグリゲートからホストを削除する  
nova aggregate-set-metadata <id> <key=value> [<key=value> ...] アグリゲートに関するメタデータを設定する  
nova aggregate-update <id> <name> [<availability_zone>] アグリゲートの名前、 availability_zone の名前を変更する  
nova backup インスタンスのスナップショットを作成します。  
nova availability-zon-list availability_zoneを表示する バグります。
nova boot
[–flavor <flavor>]
[–image <image>]
[–meta <key=value>]
[–file <dst-path=src-path>]
[–key_name <key_name>]
[–user_data <user-data>]
[–availability_zone <availability-zone>]
[–security_groups <security_groups>]
[–block_device_mapping <dev_name=mapping>]
[–hint <key=value>]
[–nic <net-id=net-uuid,v4-fixed-ip=ip-addr>]
[–config-drive <value>] [–poll]
<name>
インスタンスを起動する オプションが非常に多いので別途スクリプトを作成しておいたほうがいいかもしれません。
nova clear-password <server> パスワードをクリアする  
nova cloudpipe-create <project> プロジェクトのクラウドパイプインスタンスを作成する  
nova cloudpipe-list クラウドパイプインスタンスのリストを表示する  
nova console-log [–length <length>] <server> インスタンスのログを表示する length で表示する行数を指定します。 <server>ID でなく Name で問題ありません。
nova coverage-report [–html] [–xml] <filename> カバレッジレポートを出力する  
nova coverage-start カバレッジレポートを起動する  
nova coverage-stop カバレッジレポートを停止する  
nova credentials 実行しているユーザの認証情報を表示する  
nova delete <server> 実行しているインスタンスを削除する 削除なので注意する必要があります。停止ではありません。<server>Name で指定出来ます。
nova diagnostics <server> 指定したインスタンスの診断を行う  
nova dns-create [–type <type>] <ip> <name> <domain> ドメイン名とIPのDNSエントリを作成する  
nova dns-create-private-domain [–availability_zone <availability_zone>] <domain> プライベートDNSドメインを作成する  
nova dns-create-public-domain [–project <project>] <domain> パブリックDNSドメインを作成する  
nova dns-delete <domain> <name> DNSエントリを削除する  
nova dns-delete-domain <domain> DNSドメインを削除する  
nova dns-domains Print a list of available dns domains. 利用可能なDNSドメインのリストを表示する  
nova dns-list [–ip <ip>] [–name <name>] <domain> DNSドメインとIPアドレスまたはドメインと名前を表示する  
nova endpoints 認証されているエンドポイントを表示する  
nova evacuate [–password <password>] [–on-shared-storage] <server> <host> 障害が発生したホストからインスタンスを退避する  
nova fixed-ip-get <fixed_ip> 内部IPの状態確認を行う  
nova fixed-ip-reserve 次回インスタンス起動時のために内部IPの予約を行う うまく割り当てられません。。
nova fixed-ip-unreserve 次回インスタンス起動時のための内部IPの予約を解除する  
nova flavor-access-add Add flavor access for the given tenant.  
nova flavor-access-list Print access information about the given flavor.  
nova flavor-access-remove Remove flavor access for the given tenant.  
nova flavor-create
[–ephemeral <ephemeral>]
[–swap <swap>]
[–rxtx-factor <factor>]
<name> <id> <ram> <disk> <vcpus>
flavorを作成する
nova-manage でも flavor は作成できます。
nova-manage のほうがオプションが明示的なのでわかりやすいかもしれません。
nova flavor-delete <id> flavorを削除する  
nova flavor-key <flavor> <action> <key=value> [<key=value> ...] flavorにキーを設定する  
nova flavor-list flavorのリストをを表示する  
nova flavor-show <flavor> flavorの詳細をを表示する  
nova floating-ip-bulk-create フローティングIPのレンジを作成する  
nova floating-ip-bulk-delete フローティングIPのレンジを削除する  
nova floating-ip-bulk-list フローティングIPのリストを表示する  
nova floating-ip-create インスタンスへ割り当てるフローティングIPを割り当てる 割り当て後に nova add-floating-ip でインスタンスへ付与して利用します。
nova floating-ip-delete <address> フローティングIPを解除する 解除する前にインスタンスへ付与しているものを nova remove-floating-ip で切り離している必要があります。
nova floating-ip-list nova floating-ip-create で割り当てたインスタンスへ付与出来るIPリストを表示する  
nova floating-ip-pool-list フローティングIPプールを表示する  
nova get-password <server> <private-key> インスタンスのパスワードを取得する 取得できないです。。
nova get-spice-console <server> <console_type> SPICEで接続するための情報(URL)を取得する  
nova get-vnc-console <server> <console_type> VNCで接続するための情報(URL)を取得する server には Name console_typenovnc もしくは xvpvnc を指定します。
nova host-action [–action <action>] <hostname> ホスト(インスタンスではない)に電源アクションを実行する  
nova host-update [–status <status>] [–maintenance <maintenance_mode>] <hostname> ホストの設定を更新する メンテナンスモードにしてComputteNodeから切り離したりします。
nova host-list サービスを提供しているホストのリストを表示する  
nova host-update
[–status <enable|disable>]
[–maintenance <enable|disable>]
<hostname>
サービスを提供しているホストの状態を変更する  
nova hypervisor-list ハイパーバイザーを提供しているサーバ(コンピュートノード)を表示する  
nova hypervisor-servers <hostname> 指定したサーバ(コンピュートノード)で稼働している仮想マシンを表示する  
nova hypervisor-show <hypervisor-id> 指定したハイパーバイザーIDの仮想マシンの詳細を表示する  
nova hypervisor-stats ハイパーバイザーすべてのリソースを表示する  
nova hypervisor-uptime <hypervisor-id> 指定したハイパーバイザーIDの仮想マシンの起動時間を表示する バグります。
nova image-create [–poll] <server> <name> 稼働中のインスタンスのスナップショットを作成する 稼働中のインスタンスはしばらく利用できなくなります。
nova image-delete <image> イメージを削除する image はリストの Name を指定します。
nova image-list ブート可能なイメージのリストを表示する  
nova image-meta <image> <action> <key=value> [<key=value> ...] イメージのメタデータを設定、削除します  
nova image-show <image> イメージの詳細情報を表示する  
nova keypair-add [–pub_key <pub_key>] <name> インスタンスへSSHのパス無し認証を実行する際のキーペアを作成する 名前と同じファイルにリダイレクトして利用します。
nova keypair-delete <name> キーペアを削除する  
nova keypair-list キーペアのリストを表示する  
nova list 稼働中(停止していても)のインスタンスを表示する  
nova live-migration [–block_migrate] [–disk_over_commit] <server> <host> インスタンスのライブマイグレーションを行う  
nova lock インスタンスをロックする nova unlock でアンロックします。
nova meta <server> <action> <key=value> [<key=value> ...] インスタンスのメタデータを設定、削除する  
nova migrate [–poll] <server> インスタンスのマイグレートを行う  
nova network-associate-host <network> <host> ネットワークとインスタンスを関連付ける  
nova network-associate-project <network> ネットワークとプロジェクトを関連付ける  
nova network-create ネットワークを作成する  
nova network-show <network> ネットワークを表示する  
nova pause インスタンスの一時停止を行う nova unpause で再開します。
nova quota-class-show <class> クオータクラスのリストを表示する  
nova quota-class-update
[–instances <instances>]
[–cores <cores>]
[–ram <ram>] [–volumes <volumes>]
[–gigabytes <gigabytes>]
[–floating-ips <floating_ips>]
[–metadata-items <metadata_items>]
[–injected-files <injected_files>]
[–injected-file-content-bytes <injected_file_content_bytes>]
<class>
クオータクラスのクオータをアップデートする  
nova quota-defaults <tenant_id>    
nova quota-show <tenant_id> テナントに対するクオータを表示する tenant_idkeystone tenant-list で確認できます。
nova quota-update
[–instances <instances>] [–cores <cores>]
[–ram <ram>] [–volumes <volumes>]
[–gigabytes <gigabytes>]
[–floating-ips <floating_ips>]
[–metadata-items <metadata_items>]
[–injected-files <injected_files>]
[–injected-file-content-bytes <injected_file_content_bytes>]
<tenant_id>
テナントに対するクオータ設定を更新する  
nova rate-limits ユーザのレート制限リストを表示する  
nova reboot [–hard] [–poll] <server> インスタンスの再起動を行う  
nova rebuild インスタンスのリビルド(初期化)を行う  
nova remove-fixed-ip <server> <address> インスタンスの内部IPを削除する  
nova remove-floating-ip <server> <address> インスタンスのフローティングIPを削除する  
remove-secgroup <server> <secgroup> インスタンスからセキュリティグループを削除します  
nova rename <server> <name> インスタンスの名前を変更する  
nova rescue インスタンスを救出する adminPassValue が表示されるので root のパスワードなのかなと思ったんですが使えなかった。
nova resize [–poll] <server> <flavor> インスタンスのリサイズを行う  
nova resize-confirm <server> インスタンスのリサイズ前の確認を行う  
nova resize-revert <server> インスタンスのリサイズを変更まdの状態に戻す  
nova resume <server> サスペンドしたインスタンスを再開する サスペンドした時点でインスタンスはクローンされますのでクローンされたインスタンスが起動します。
nova root-password <server> インスタンスの root パスワードを変更する はずなのですが変わってない。。
nova secgroup-add-group-rule
[–ip_proto <ip_proto>]
[–from_port <from_port>]
[–to_port <to_port>]
<secgroup> <source_group>
セキュルティグループにグループルールを追加する  
nova scrub <project_id> プロジェクトに関連付けられているデータを削除します  
nova secgroup-add-rule <secgroup> <ip_proto> <from_port> <to_port> <cidr> セキュリティグループに対するルールを追加する フローティングIPに対するルールです。
nova secgroup-create <name> <description> セキュリティグループを作成する  
nova secgroup-delete <secgroup> セキュリティグループを削除する  
nova secgroup-delete-group-rule
[–ip_proto <ip_proto>]
[–from_port <from_port>]
[–to_port <to_port>]
<secgroup> <source_group>
セキュリティグループからグループルールを削除する  
nova secgroup-list セキュリティグループのリストを表示する  
nova secgroup-list-rules <secgroup> セキュリティグループの設定を表示する  
nova service-disable <hostname> <servicename> サービスを停止します プロセスは停止しません。
nova service-enable <hostname> <servicename> サービスを起動します 停止しているプロセスは起動しません。
nova show [–minimal] <server> インスタンスの詳細情報を表示する  
nova ssh [–port PORT] [–private] [–ipv6] [–login <login>] <server> インスタンスへSSHで接続する 使い方がわからない
nova start <server> インスタンスを起動する  
nova stop <server> インスタンスを停止する  
nova suspend <server> インスタンスをサスペンドする 実行中のサーバはサスペンドされず、新規にサスペンドされたインスタンスが作成されます。
nova unlock <server> インスタンスをアンロックする  
nova unpause <server> 停止していたインスタンスを再開する  
nova unrescue <server> インスタンスをアンレスキューする  
nova usage プロジェクトの状況を表示する  
nova usage-list インスタンスの使用状況のリストを表示する  
nova volume-attach <server> <volume> <device> ボリュームをインスタンスへアタッチする  
nova volume-create
[–snapshot_id <snapshot_id>]
[–display_name <display_name>]
[–display_description <display_description>]
[–volume_type <volume_type>]
<size>
ボリュームを作成する  
nova volume-delete <volume> ボリュームを削除する  
nova volume-detach <server> <volume> インスタンスからボリュームをデタッチする  
nova volume-list ボリュームのリストを表示する  
nova volume-show <volume> ボリュームの詳細を表示する  
nova volume-snapshot-create
[–force <True|False>]
[–display_name <display_name>]
[–display_description <display_description>]
<volume_id>
ボリュームのスナップショットを作成する  
nova volume-snapshot-delete <snapshot_id> ボリュームのスナップショットを削除する  
nova volume-snapshot-list ボリュームのスナップショットのリストを表示する  
nova volume-snapshot-show <snapshot> ボリュームのスナップショットの詳細を表示する  
nova volume-type-create <name> ボリュームタイプを作成する  
nova volume-type-delete <id> ボリュームタイプを削除する  
nova volume-type-list ボリュームタイプのリストを表示する  
nova x509-create-cert テナントユーザのX509証明書を作成する  
nova x509-get-root-cert X509のルート証明書を取得する  
nova bash-completion 標準出力にコマンドとオプションを全て出力する  
nova help nova コマンドのヘルプを表示する  
nova list-extensions APIでサポートされているものを表示する  
nova net <network_id> ネットワークの詳細を表示する  
nova net-create <network_label> <cidr> ネットワークを作成する  
nova net-delete <network_id> ネットワークを削除する  
nova net-list ネットワークリストを表示する  
nova baremetal-add-interface [–datapath_id <datapath_id>]
[–port_no <port_no>]
<node> <address>
ベアメタルノードのネットワークインターフェースを作成する  
nova baremetal-node-create [–pm_address <pm_address>]
[–pm_user <pm_user>]
[–pm_password <pm_password>]
[–prov_vlan_id <prov_vlan_id>]
[–terminal_port <terminal_port>]
<service_host> <cpus> <memory_mb> <local_gb>
<prov_mac_address>
ベアメタルノードを作成する  
nova baremetal-node-delete <node>
ベアメタルノードを削除する  
nova baremetal-node-list
ベアメタルノードリストを表示する  
nova baremetal-node-show <node>
ベアメタルノードの詳細を表示する  
nova baremetal-remove-interface <node> <address>
ベアメタルノードからネットワークインターフェースを削除する  

4.1.2.4. コマンド実行例

よく使うコマンドの実行例を記述します。

4.1.2.4.1. キーペアの作成

イメージ作成時にSSHのパスワードを設定していない場合は鍵なし認証でしかログイン出来ません。
そのためSSHのキーペアが必要になりますので作成します。
$ cd
$ nova keypair-add mykey > mykey
$ chmod 600 mykey
$ nova keypair-list
+-------+-------------------------------------------------+
|  Name |                   Fingerprint                   |
+-------+-------------------------------------------------+
| mykey | bd:fb:0c:64:b8:9c:d7:e5:b4:55:d8:0d:30:f8:cc:45 |
+-------+-------------------------------------------------+

4.1.2.4.2. セキュリティグループへのルール追加

何も設定しないと外部ネットワークへサービスを提供出来ません。
ここではセキュリティグループ default へルールを追加します。

削除する場合は adddelete に変更すれば削除できます。

$ nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port |  IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp        | -1        | -1      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
$ nova  secgroup-add-rule default  tcp 22 22 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port |  IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| tcp         | 80        | 80      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
$ nova  secgroup-add-rule default  tcp 80 80 0.0.0.0/0
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port |  IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| tcp         | 80        | 80      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+
$ nova secgroup-list-rules default
+-------------+-----------+---------+-----------+--------------+
| IP Protocol | From Port | To Port |  IP Range | Source Group |
+-------------+-----------+---------+-----------+--------------+
| icmp        | -1        | -1      | 0.0.0.0/0 |              |
| tcp         | 22        | 22      | 0.0.0.0/0 |              |
| tcp         | 80        | 80      | 0.0.0.0/0 |              |
+-------------+-----------+---------+-----------+--------------+

4.1.2.4.3. インスタンスの起動

作成した鍵を付与してインスタンスを起動します。FlavorとImageも指定が必要です。
何も設定しないと外部ネットワークへサービスを提供出来ません。
ここではセキュリティグループ default へルールを追加します。
$ nova image-list
+--------------------------------------+--------------+--------+--------+
|                  ID                  |     Name     | Status | Server |
+--------------------------------------+--------------+--------+--------+
| 66d99888-0554-4b03-97d4-a6202ae9f291 | ttylinux-ami | ACTIVE |        |
| d19907e6-4f29-4bec-a06b-b798e93e68dc | ttylinux-aki | ACTIVE |        |
| e60024bf-ba7c-4347-b336-eac0aa699eee | ttylinux-ari | ACTIVE |        |
+--------------------------------------+--------------+--------+--------+
$ nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+
| ID |    Name   | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor |
+----+-----------+-----------+------+-----------+------+-------+-------------+
| 1  | m1.tiny   | 512       | 0    | 0         |      | 1     | 1.0         |
| 2  | m1.small  | 2048      | 10   | 20        |      | 1     | 1.0         |
| 3  | m1.medium | 4096      | 10   | 40        |      | 2     | 1.0         |
| 4  | m1.large  | 8192      | 10   | 80        |      | 4     | 1.0         |
| 5  | m1.xlarge | 16384     | 10   | 160       |      | 8     | 1.0         |
+----+-----------+-----------+------+-----------+------+-------+-------------+
$ TTY_LINUX_AMI=$(nova image-list | grep ttylinux-ami | awk '{print $2}')
$ nova boot --flavor 1 --image $TTY_LINUX_AMI tiny_001 --key_name mykey
+-------------------------------------+--------------------------------------+
|               Property              |                Value                 |
+-------------------------------------+--------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                               |
| OS-EXT-SRV-ATTR:host                | stack01                              |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None                                 |
| OS-EXT-SRV-ATTR:instance_name       | instance-0000000e                    |
| OS-EXT-STS:power_state              | 0                                    |
| OS-EXT-STS:task_state               | scheduling                           |
| OS-EXT-STS:vm_state                 | building                             |
| accessIPv4                          |                                      |
| accessIPv6                          |                                      |
| adminPass                           | fAwuQs2rHmnV                         |
| config_drive                        |                                      |
| created                             | 2012-04-01T08:41:43Z                 |
| flavor                              | m1.tiny                              |
| hostId                              |                                      |
| id                                  | 266ec61b-79c7-41cb-ac74-5bed831c5c28 |
| image                               | ttylinux-ami                         |
| key_name                            | mykey                                |
| metadata                            | {}                                   |
| name                                | tiny_001                             |
| progress                            | 0                                    |
| status                              | BUILD                                |
| tenant_id                           | a5f6eac6acf64ed09edb061ebd94675d     |
| updated                             | 2012-04-01T08:41:43Z                 |
| user_id                             | 7434e110e5244e80a1ed19d4cd78d47f     |
+-------------------------------------+--------------------------------------+

作成している過程を確認する場合は

$ sudo tail -f /var/log/nova/nova-compute.log
2012-04-01 17:41:49 INFO nova.virt.libvirt.connection [-] [instance: 266ec61b-79c7-41cb-ac74-5bed831c5c28] Instance spawned successfully.

以下のコマンドで確認した場合にインスタンスのステータスがACTIVEになる必要があります。

$ nova list
+--------------------------------------+------+--------+------------------------+
|                  ID                  | Name | Status |        Networks        |
+--------------------------------------+------+--------+------------------------+
| 018144d2-473b-47c8-8683-78c6cb8ee5f9 | SS   | ACTIVE | nova_network1=10.0.0.4 |
+--------------------------------------+------+--------+------------------------+

4.1.2.4.4. インスタンスへ接続

管理サーバからログインする場合はフローティングIPが無くてもインスタンス一覧(nova list)で確認したIPでログインできます。

$ ssh -i mykey root@IPアドレス

4.1.2.4.5. フローティングIPの付与

フローティングIPを付与したら外部ネットワークから鍵(ここではmykey)を利用してログインできるようになります。
付与するインスタンス名はnova listで確認しておきます。
floating-ip-createでIPを割り当て、associateでインスタンスにIPを付与することで利用可能になります。
$ sudo nova-manage float list
None    192.168.10.113  None    nova    eth0
None    192.168.10.114  None    nova    eth0
None    192.168.10.115  None    nova    eth0
None    192.168.10.116  None    nova    eth0
None    192.168.10.117  None    nova    eth0
None    192.168.10.118  None    nova    eth0
None    192.168.10.119  None    nova    eth0
None    192.168.10.120  None    nova    eth0
None    192.168.10.121  None    nova    eth0
None    192.168.10.122  None    nova    eth0
None    192.168.10.123  None    nova    eth0
None    192.168.10.124  None    nova    eth0
None    192.168.10.125  None    nova    eth0
None    192.168.10.126  None    nova    eth0

$ nova floating-ip-create
+----------------+-------------+----------+------+
|       Ip       | Instance Id | Fixed Ip | Pool |
+----------------+-------------+----------+------+
| 192.168.10.113 | None        | None     | nova |
+----------------+-------------+----------+------+
$ nova list
+--------------------------------------+----------+--------+------------------------+
|                  ID                  |   Name   | Status |        Networks        |
+--------------------------------------+----------+--------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | ACTIVE | nova_network1=10.0.0.2 |
+--------------------------------------+----------+--------+------------------------+
$ nova add-floating-ip 266ec61b-79c7-41cb-ac74-5bed831c5c28 192.168.10.113
$ nova list
+--------------------------------------+----------+--------+----------------------------------------+
|                  ID                  |   Name   | Status |                Networks                |
+--------------------------------------+----------+--------+----------------------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | ACTIVE | nova_network1=10.0.0.2, 192.168.10.113 |
+--------------------------------------+----------+--------+----------------------------------------+
IPの付与を解除する場合はまずインスタンスへの紐付を解除してデリートします。
その次にまたそのIPが利用できるようにします。
$ nova remove-floating-ip 266ec61b-79c7-41cb-ac74-5bed831c5c28 192.168.10.113
$ floating-ip-delete 192.168.10.113
$ nova list
+--------------------------------------+----------+--------+------------------------+
|                  ID                  |   Name   | Status |        Networks        |
+--------------------------------------+----------+--------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | ACTIVE | nova_network1=10.0.0.2 |
+--------------------------------------+----------+--------+------------------------+

4.1.2.4.6. インスタンスの状態

suspendかpauseでインスタンスを停止します。

deleteでインスタンスを削除します。

$ nova list
+--------------------------------------+----------+--------+------------------------+
|                  ID                  |   Name   | Status |        Networks        |
+--------------------------------------+----------+--------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | ACTIVE | nova_network1=10.0.0.2 |
+--------------------------------------+----------+--------+------------------------+

インスタンスのサスペンド

$ nova suspend tiny_001
$ nova list
+--------------------------------------+----------+-----------+------------------------+
|                  ID                  |   Name   |   Status  |        Networks        |
+--------------------------------------+----------+-----------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | SUSPENDED | nova_network1=10.0.0.2 |
+--------------------------------------+----------+-----------+------------------------+

インスタンスの再開

susupend で停止したものは resume で再開します。

$ nova resume 266ec61b-79c7-41cb-ac74-5bed831c5c28
$ nova list
+--------------------------------------+----------+--------+------------------------+
|                  ID                  |   Name   | Status |        Networks        |
+--------------------------------------+----------+--------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | ACTIVE | nova_network1=10.0.0.2 |
+--------------------------------------+----------+--------+------------------------+

インスタンスの一時停止

$ nova pause 266ec61b-79c7-41cb-ac74-5bed831c5c28
$ nova list
+--------------------------------------+----------+--------+------------------------+
|                  ID                  |   Name   | Status |        Networks        |
+--------------------------------------+----------+--------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | PAUSED | nova_network1=10.0.0.2 |
+--------------------------------------+----------+--------+------------------------+

インスタンスの再開

pause で一時停止したインスタンスは unpause で再開します。

$ nova unpause 266ec61b-79c7-41cb-ac74-5bed831c5c28
$ nova list
+--------------------------------------+----------+--------+------------------------+
|                  ID                  |   Name   | Status |        Networks        |
+--------------------------------------+----------+--------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | ACTIVE | nova_network1=10.0.0.2 |
+--------------------------------------+----------+--------+------------------------+

インスタンスの再起動

$ nova reboot 266ec61b-79c7-41cb-ac74-5bed831c5c28
$ nova list
+--------------------------------------+----------+--------+------------------------+
|                  ID                  |   Name   | Status |        Networks        |
+--------------------------------------+----------+--------+------------------------+
| 266ec61b-79c7-41cb-ac74-5bed831c5c28 | tiny_001 | REBOOT | nova_network1=10.0.0.2 |
+--------------------------------------+----------+--------+------------------------+

4.1.2.4.7. ボリュームの作成方法

インスタンスの追加ボリュームを作成します。

$ nova volume-create --display_name=vol1 --display_description=volume1 1

ボリュームの作成確認

ステータスが available になっている必要があります。

$ nova volume-list
+----+-----------+--------------+------+-------------+-------------+
| ID |   Status  | Display Name | Size | Volume Type | Attached to |
+----+-----------+--------------+------+-------------+-------------+
| 2  | available | vol1         | 1    | None        |             |
+----+-----------+--------------+------+-------------+-------------+

インスタンスへのアタッチ

インスタンス側で利用するにはアタッチする必要があります。
数字は最初がインスタンスのID、二番目がボリュームのIDです。
$ nova list
+--------------------------------------+---------+--------+------------------------+
|                  ID                  |   Name  | Status |        Networks        |
+--------------------------------------+---------+--------+------------------------+
| b912303b-869e-46df-a1ca-69d314393108 | tty_001 | ACTIVE | nova_network1=10.0.0.2 |
+--------------------------------------+---------+--------+------------------------+

$ nova volume-attach tty_001 2 /dev/vdb

インスタンス側でディスクを利用

$ ssh -i mykey root@IPアドレス
$ mkfs.ext3 /dev/vdb1
$ mkdir /mnt/iscsi
$ mount /dev/vdb1 /mnt/iscsi