OpenStackでよく使うコマンド
OpenStack Compute - Nova
- インスタンス一覧
nova listopenstack server list - フレーバー一覧・確認
nova flavor-listnova flavor-show <name or ID>openstack flavor listopenstack flavor show <name or ID> - フレーバー作成
openstack flavor create --ram <ram> --vcpus <cpu number> --disk <size> --id <id> <name>nova flavor-create <name> <id> <ram> <disk> <vcpus> - インスタンス起動
nova boot <name> --image <image> --flavor <flavor>openstack server create --flavor <flavor> --image <image> <name> - ネットワーク指定でインスタンス起動
openstack server create --flavor <flavor> --image <image> <name> net-id=<network> - キーペア指定でインスタンス起動
nova boot <name> --image <image> --flavor <flavor> --key-name <key-pair name>openstack server create --flavor <flavor> --image <image> <name> - ルーター経由でインスタンスにアクセス
ip netns listsudo ip netns exec <qrouter-id> ssh -i <key> user@ip - カスタムポートでインスタンス起動
nova boot --image <image> --flavor <flavor> --nic port-id=<port-id> <instance name> - インスタンス削除
nova delete <ID>openstack server delete <ID or name>
Openstack Network - Neutron
- ネットワーク一覧
openstack network list - サブネット一覧
openstack subnet list --long - ネットワーク作成
openstack network create <net name> - サブネット作成
openstack subnet create <subnet name> --network <net name> --subnet-range <ip address>/<prefix> --gateway <gw ip> --allocation-pool start=IP_ADDR,end=IP_ADDR例:openstack subnet create practicesubnet --network practice --subnet-range 10.2.0.224/27 --gateway 10.2.0.225 --allocation-pool start=10.2.0.240,end=10.2.0.245 - IPアドレス指定でポート作成
openstack subnet list --longで利用可能なアドレス範囲を確認openstack port create --network=<network> --fixed-ip subnet=private-subnet,ip-address=<ip_address> <port name> - IPアドレス未指定でポート作成
openstack port create <port name> --network <network>システムが自動でIPアドレスを割り当てます - 固定IPでポート検索
neutron port-list --fixed-ips ip_address=<IP1> ip_address=<IP2> - ルーター作成
openstack router create <router> - ルーターを外部プロバイダネットワークに接続
openstack router set <router> --external-gateway <public network> - サブネットをルーターに追加
openstack router add subnet <router> <subnet> - サブネットをルーターから削除
openstack router remove subnet <router> <subnet> - ルーター削除
openstack router delete <router> - 外部ネットワーク作成
openstack network create public --external --provider-network-type flat --provider-physical-network external - Floating IP管理
neutron floatingip-createneutron floatingip-deleteneutron floatingip-associateneutron floatingip-disassociateneutron floatingip-list
例:
neutron floatingip-create public
neutron floatingip-associate <fip ID> <port ID of instance's internal ip>
OpenStack Image - Glance
- イメージ一覧・詳細表示
glance image-listglance image-show <ID>openstack image listopenstack image show <name or ID> - イメージファイル情報確認
qemu-img info <path/to/image> - ファイルからイメージ作成
glance image-create --progress --name <name> --file /path/to/file --disk-format qcow2 --container-format bare --visibility public - イメージダウンロード
openstack image save <image> --file <save/to/file> - イメージ削除
glance image-delete <ID>openstack image delete <ID>
OpenStackブロックストレージ - Cinder
- ボリューム一覧・詳細表示
cinder listcinder show <ID>openstack volume listopenstack volume show <name or ID> - 新規空ボリューム作成
cinder create --name <vol name> <size in GiBs> - イメージから新規ボリューム作成
cinder create --name <vol name> <size in GiBs> --image <ID or Name> - ボリュームをインスタンスにアタッチ
openstack server add volume <instance> <volume>nova volume-attach <instance> <volume ID> <device> - ボリュームをインスタンスからデタッチ
openstack server remove volume <instance> <volume>nova volume-detach <server> <volume> - ボリューム削除
cinder delete <volume>openstack volume delete <volume>
OpenStack Identity - Keystone
- トークン発行
openstack token issue - 認証情報確認
source credrc.shファイル例:
| |
- 認証情報確認
export | grep OS_ - プロジェクト作成
openstack project create --description "text" <project name> - ユーザー作成・削除
openstack user create <name> --password passopenstack user delete <name> - ロール一覧
openstack role list - プロジェクト内ユーザーのロール変更
openstack role add --user <user> --project <project> <role> - プロジェクトのクォータ表示
openstack quota show <project id>nova quota-show --tenant <project id> - プロジェクトのクォータ更新
openstack quota set --<key> <value> <project id>nova quota-update --<key> <value> <project id> - ポリシー変更
| |
- キーペア作成・一覧
nova keypair-add <name> --pub-key <path/to/public/key>openstack keypair create <name> --pub-key <path/to/public/key>nova keypair-list - セキュリティグループにSSH許可ルール追加
openstack security group rule create <rule name> --ingress --dst-port 22:22 --protocol tcp --remote-ip 0.0.0.0/0 <group name>nova secgroup-add-rule <group name> <ip-proto> <from-port> <to-port>例: nova secgroup-add-rule novasg2 tcp 22 22 0.0.0.0/24 - セキュリティグループ・ルール一覧
openstack security group listopenstack security group rule list
OpenStackオブジェクトストレージ - Swift
アカウントはユーザーアカウントではなく、swift内の名前空間/プロジェクトのようなものです。 コンテナはディレクトリのようなものです。
| タスク | コマンド |
|---|---|
| アカウント情報取得 | swift stat |
| コンテナ作成 | swift post <container> |
| アカウント内の全コンテナ一覧 | swift list |
| コンテナ情報取得 | swift stat <container> |
| ファイル/ディレクトリをコンテナにアップロード | swift upload --object-name <object> <containe> <file/firectory path> |
| コンテナ内のファイル一覧 | swift list <containe> |
| ファイルダウンロード | swift download <container> <object> |
| コンテナにメタデータ追加 | swift post --meta <color>:<value> <container> |
| オブジェクト削除 | swift delete <container> <object> |
| 指定セグメントでファイルアップロード | swift upload <container> <object> --segment-size <size> |
| コンテナ削除 | swift delete <container> |
例:
swift upload uploads files/puppies.jpg --object-name picture
- uploadsコンテナに、gadget.example.com以外の誰でも読み取り可能なACLを追加
swift post -r .r:*,-gadget.example.com uploads - uploadsコンテナに、phoneプロジェクトの誰でも書き込み可能なACLを追加
swift post -w phone:* uploads