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

8.1.1. nova-manageコマンド

Openstackのコマンドは数多く有ります。
このページは nova-manage のコマンドについて記述します。
nova コマンドもありますがこちらは主に管理に関するコマンドです。
環境変数の設定は必要ありません。
但し nova.conf の設定がキチンとなっている必要があります。
基本的に nova-manage コマンドは、 root で実行します。

8.1.1.1. アカウント関連

アカウントに関するコマンドです。 Keystone でアカウント管理するためあまり使うことはありません。

8.1.1.2. エージェント関連

エージェントに関するコマンドです。こちらもあまり利用しません。

コマンド 動作 備考
nova-manage agent create エージェントを作成する  
nova-manage agent delete エージェントを削除する  
nova-manage agent list エージェントを表示する  
nova-manage agent modify エージェントの情報を更新する  

8.1.1.3. コンフィグ関連

コンフィグに関するコマンドです。よく使うかもしれません。
またオールドスタイルのコンフィグの変更も行えます。
コマンド 概要 備考
nova-manage config convert
–infile=<path>
–outfile=<path>
オールドスタイルのコンフィグをニュースタイルに変更する
DiabloまではPythonのオプションの記述方法でした。
EssexからはWindowsのiniファイルみたいな記述方法に変わりましたのでこのコマンドで変更できます。
nova-manage config list novaに関する設定を表示する nova.confに記述していないデフォルト値も表示されます。

8.1.1.4. DB関連

novaのDB関連のコマンドです。
DB同期はインストール時に必ず必要になる作業です。
最初しか利用しないかもしれません。

8.1.1.5. エクスポート関連

エクスポートに関するコマンドです。

8.1.1.6. FIXED関連

内部IPアドレスに関するコマンドです。
nova.conf で設定しているのであまり利用しません。
コマンド 概要  
nova-manage fixed list 内部IPアドレス一覧を表示する  
nova-manage fixed reserve
–address=<ip address>
内部IPアドレスを予約する
次回インスタンス作成時の内部IPアドレスを指定します。
指定しないと余っている内部アドレスのうち若番から自動的にふられます。
と思ったのですが思った通りの動作にならないです。
nova-manage fixed unreserve
–address=<ip address>
内部IPアドレスを予約を解除する  

8.1.1.7. FLAVOR関連

作成するインスタンスのCPUやメモリの大きさなどを設定しておくコマンドです。
デフォルトでいくつか設定されていますがそれが気に入らない場合は作成する必要があります。
FLAVORの作成方法は覺えておいたほうがいいのかもしれません。
コマンド 概要 備考
nova-manage flavor create
–name=<name>
–memory=<memory size>
–cpu=<num cores>
–root_gb=<root_gb>
–ephemeral_gb=<ephemeral_gb>
–flavor=<flavor id>
–swap=<swap>
flavorを作成する
作成するインスタンスの種類みたいなものです。
CPU数、メモリ量、ROOT領域、外部ディスク、SWAP領域を指定したものを作成しておきます。
Ephemeralは仮想マシンへの追加ディスクです。
/dev/vdbが追加されます。
SWAPは基本設定のものは0になっています。
nova-manage flavor delete
–name=<name>
flavorを削除する  
nova-manage flavor list flavor一覧を表示する nova flavor-list でプロジェクト単位ですが、同様のものが表示されます。

8.1.1.8. フローティングIP(外部向けIPアドレス)関連

フローティングIPに関するコマンドです。
フローティングIPは外部へサービスを提供する場合は必要になります。
nova コマンドと組み合わせて利用したりします。

8.1.1.9. ホスト関連

ホストに関するコマンドです。
ComputeNodeなどサーバの台数が多くなれば必要になるコマンドかもしれません。
コマンド 概要 備考
nova-manage host list novaのサービスを提供しているホストを表示する  

8.1.1.10. インスタンス関連

インスタンスに関するコマンドです。
FLAVORコマンドと同義?どちらかが消えるのかもしれません。
オプションも同じなので flavor のほうを参照してください。
コマンド 概要 備考
nova-manage instance_type create    
nova-manage instance_type delete    
nova-manage instance_type list flavorを表示する(nova flavor-list) nova flavor-list でもプロジェクト単位であれば同じ実行結果が出力されます。

8.1.1.11. ネットワーク関連

ネットワークに関するコマンドです。
create のオプションがマトモに出力されないのでどういったものが作成されるのかはソースを見る必要があります。何でやねん。
コマンド 概要 備考
nova-manage network create
–label=<label_name>
–fixed_range_v4=<ip_address_range>
–fixed_range_v6=<ipv6_address_range>
–bridge_interface=<bridge_interface_name>
インスタンスへ提供するネットワークを作成する オプションが表示されないのでわかっているものだけ記述しています。
nova-manage network delete <ip_address_range> ネットワークを削除する ラベルも設定したのに削除するのに指定するのはレンジだけです。色々謎です。
nova-manage network list 設定されている内部ネットワークを表示する  
nova-manage quantum_list 設定されている内部ネットワークを表示する Quantmuを利用していると必要になるんでしょうか。まだ試していないのでわかりません。

8.1.1.12. プロジェクト関連

プロジェクトに関するコマンドです。
Keystone でプロジェクトを設定するのであれば使用することはありません。
コマンド 概要 備考
nova-manage project add
–project=<Project name>
–user=<name>
プロジェクトを追加する  
nova-manage project create
–project=<Project name>
–user=<user>
–desc=<description>
プロジェクトを追加する  
nova-manage project delete
–project=<Project name>
プロジェクトを削除する  
nova-manage project environment
–project=<Project name>
–user=<name>
–file=<filename>
プロジェクトの環境変数ファイルを作成する filenameのデフォルト値は novarc です。  
nova-manage project list プロジェクト一覧を表示する
nova.projects テーブルがありませんとかいってバグります。
みんな Keystone 使っててこっちは使わず気づいてないんでしょうか。
nova-manage project modify
–project=<Project name>
–user=<user>
–desc=<description>
プロジェクトの情報を更新する  
nova-manage project quota
–project=<Project name>
–key=<key>
–value=<value>
プロジェクトのクオータを設定する  
nova-manage project remove
–project=<Project name>
–user=<name>
プロジェクトを削除する  
nova-manage project scrub
–project=<Project name>
プロジェクトの設定をスクラブする  

8.1.1.13. ロール関連

ロールに関するコマンドです。
サービスに対する権限を指定します。
Keystone でロールを設定するのであればこのコマンドは利用することはありません。
あと、リストコマンドがないのは何でなんでしょう。
コマンド 概要  
nova-manage role add
–user=<user name>
–role=<user role>
–project=<Project name>
ロールを追加する  
nova-manage role has
–user=<user name>
–role=<user role>
–project=<Project name>
   
nova-manage role remove
–user=<user name>
–role=<user role>
–project=<Project name>
ロールを削除する  

8.1.1.14. サービス関連

サービスがEnable、Disableもしくはプロセスが起動中、停止中なのかを確認したりするコマンドです。
list コマンドはよく利用しますので覚えておきましょう。
コマンド 概要 備考
nova-manage service describe_resource
–host=<host>
hostに関するnovaの情報(CPU、メモリ、ディスク、インスタンス)を表示する  
nova-manage service disable
–host=<host>
–service=<service>
サービスを停止する(プロセス自体は停止しない)  
nova-manage service enable | –host=<host> | –service=<service> サービスを起動する(プロセスは起動している必要がある)  
nova-manage service list サービスの状態を表示する  

8.1.1.15. シェル関連

Openstackをシェルで利用するためのコマンドです。

コマンド 概要  
nova-manage shell bpython Pythonのシェルを起動する  
nova-manage shell export   boolオブジェクトがdecode出来ませんみたいな謎エラーが出ます。
nova-manage shell ipython Pythonのシェルを起動する bpython とどう違うかわかりません。
nova-manage shell run Pythonのシェルを起動する これもPythonのシェルが起動します。
nova-manage shell script
–path=<path>
スクリプトを実行する  

8.1.1.16. SM関連

XenのStorageManagerに関するコマンドです。
Xenを利用していないと使用しないでしょう。
コマンド 概要  
nova-manage sm backend_add SMのバックエンドを作成する  
nova-manage sm backend_list SMのバックエンドを表示する  
nova-manage sm backend_remove SMのバックエンドを削除する  
nova-manage sm flavor_create SMのflavorを作成する  
nova-manage sm flavor_delete SMのflavorを削除する  
nova-manage sm flavor_list SMのflavorリストを表示する  

8.1.1.17. ユーザー関連

ユーザに関するコマンドです。
このコマンドもユーザを Kyestone で設定したりするのであれば使うことはないでしょう。
コマンド 概要 備考
nova-manage user admin
–name=<admin name>
–access=<access>
–secret=<secret>
管理ユーザを作成する  
nova-manage user create
–name=<admin name>
–access=<access>
–secret=<secret>
一般ユーザを作成する  
nova-manage user delete
–name=<name>
ユーザを削除する  
nova-manage user exports
–name=<name>
ユーザをエクスポートする  
nova-manage user list ユーザのリストを表示する  
nova-manage user modify
–name=<name>
–access=<access>
–secret=<secret>
–is_admin=<’T’|’F’>
ユーザの情報を変更する T(true)がadminです。
nova-manage user revoke
–name=<name>
–project=<Project name>
ユーザの情報変更を取り消す  

8.1.1.18. バージョン関連

Openstackのバージョンが表示されます。
Diablo とか Essex とかは表示されません。してくれたらいいのに。
コマンド 概要 備考
nova-manage version novaのバージョンを表示する  

8.1.1.19. 仮想マシン関連

実行している仮想マシンを表示します。
nova list のほうが綺麗に表示されるのですがこちらの方は uuidflavor も表示されます。
コマンド 概要 備考
nova-manage vm list 仮想マシンを表示する プロジェクト単位であれば nova list で同様の出力がされます。

8.1.1.20. ボリューム関連

ボリュームに関するコマンドです。
デリートと再アタッチはあるのですが何故か addatttch がありません。
意味がわからないので nova コマンドでボリュームは設定できるのでそちらを利用したほうがよいでしょう。
コマンド 概要 備考
nova-manage volume delete
–volume=<volume id>
ボリュームを削除する  
nova-manage volume reattach
–volume=<volume id>
ボリュームを再アタッチする  

8.1.1.21. VPN関連

VPNに関するコマンドです。

コマンド 概要 備考
nova-manage vpn change
–project=<Project name>
–ip=<IP Address>
–port=<Port>
VPNの設定変更を行う  

8.1.1.22. ログ関連

ログに関するコマンドです。
Openstackはログが非常に多いですのでいちいち一つずつ見るとなると時間がかかります。
地味に便利なコマンドかもしれません。と思いましたが時系列になってません。。
コマンド 概要 備考
nova-manage logs errors novaに関するエラーを表示する  
nova-manage logs syslog novaに関するシスログを表示する  

8.1.1.23. コマンド実行例

8.1.1.23.1. Flavorを作成

デフォルトの状態で気に入るFlavorがない場合は追加する必要があります。
--name オプションでflavorを削除するのですが一覧表示に名前が出て来ません。

最初の状態

$ sudo nova-manage flavor list
m1.medium: Memory: 4096MB, VCPUS: 2, Root: 10GB, Ephemeral: 40Gb, FlavorID: 3, Swap: 0MB, RXTX Factor: 1.0
m1.large: Memory: 8192MB, VCPUS: 4, Root: 10GB, Ephemeral: 80Gb, FlavorID: 4, Swap: 0MB, RXTX Factor: 1.0
m1.tiny: Memory: 512MB, VCPUS: 1, Root: 0GB, Ephemeral: 0Gb, FlavorID: 1, Swap: 0MB, RXTX Factor: 1.0
m1.xlarge: Memory: 16384MB, VCPUS: 8, Root: 10GB, Ephemeral: 160Gb, FlavorID: 5, Swap: 0MB, RXTX Factor: 1.0
m1.small: Memory: 2048MB, VCPUS: 1, Root: 10GB, Ephemeral: 20Gb, FlavorID: 2, Swap: 0MB, RXTX Factor: 1.0

flavorを追加

$ sudo nova-manage flavor create --name=test --memory=256 --cpu=1 --root_gb=7 --ephemeral_gb=4 --flavor=6 --swap=1024

確認

$ nova-manage flavor list
m1.medium: Memory: 4096MB, VCPUS: 2, Root: 10GB, Ephemeral: 40Gb, FlavorID: 3, Swap: 0MB, RXTX Factor: 1.0
m1.large: Memory: 8192MB, VCPUS: 4, Root: 10GB, Ephemeral: 80Gb, FlavorID: 4, Swap: 0MB, RXTX Factor: 1.0
test: Memory: 256MB, VCPUS: 1, Root: 7GB, Ephemeral: 4Gb, FlavorID: 6, Swap: 1024MB, RXTX Factor: 1.0
m1.tiny: Memory: 512MB, VCPUS: 1, Root: 0GB, Ephemeral: 0Gb, FlavorID: 1, Swap: 0MB, RXTX Factor: 1.0
m1.small: Memory: 2048MB, VCPUS: 1, Root: 10GB, Ephemeral: 20Gb, FlavorID: 2, Swap: 0MB, RXTX Factor: 1.0

削除

$ sudo nova-manage flavor delete --name=test

削除後の確認

$ sudo nova-manage flavor list
m1.medium: Memory: 4096MB, VCPUS: 2, Root: 10GB, Ephemeral: 40Gb, FlavorID: 3, Swap: 0MB, RXTX Factor: 1.0
m1.large: Memory: 8192MB, VCPUS: 4, Root: 10GB, Ephemeral: 80Gb, FlavorID: 4, Swap: 0MB, RXTX Factor: 1.0
m1.tiny: Memory: 512MB, VCPUS: 1, Root: 0GB, Ephemeral: 0Gb, FlavorID: 1, Swap: 0MB, RXTX Factor: 1.0
m1.xlarge: Memory: 16384MB, VCPUS: 8, Root: 10GB, Ephemeral: 160Gb, FlavorID: 5, Swap: 0MB, RXTX Factor: 1.0
m1.small: Memory: 2048MB, VCPUS: 1, Root: 10GB, Ephemeral: 20Gb, FlavorID: 2, Swap: 0MB, RXTX Factor: 1.0


$ nova-manage floating create --pool=nova --ip_range=192.168.10.128/28

8.1.1.23.2. 内部ネットワークの作成

インスタンスが利用する内部ネットワークを作成します。

$ sudo nova-manage network create --label nova_network1 --fixed_range_v4=10.0.0.0/24 --bridge_interface=eth0

確認

$ nova-manage network list

id      IPv4                    IPv6            start address   DNS1            DNS2            VlanID          project         uuid
1       10.0.0.0/24             None            10.0.0.2        8.8.4.4         None            None            None            ed96358a-a1c6-4837-ba12-59b60d7d419f

8.1.1.23.3. フローティングIPレンジの作成

インスタンスのサービスへ外部から接続するにはフローティングIPが必要になります。
またフローティングIPを付与するためには先にどのIPレンジを付与するか先に設定しておく必要があります。
そのために以下のコマンドでフローてイングIPのレンジを設定します。
$ sudo nova-manage floating create --pool=nova --ip_range=192.168.10.128/28

確認

$ sudo nova-manage floating 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