您的位置:首页 > 运维架构

OpenStack command-line interface cheat sheet

2015-06-06 13:45 387 查看

OpenStack command-line interface cheat sheet

Here is a list of common commands for reference.

Identity (keystone)

List all users

$ keystone user-list


List Identity service catalog

$ keystone catalog


Images (glance)

List images you can access

$ glance image-list


Delete specified image

$ glance image-delete IMAGE


Describe a specific image

$ glance image-show IMAGE


Update image

$ glance image-update IMAGE


Upload kernel image

$ glance image-create --name "cirros-threepart-kernel" \
--disk-format aki --container-format aki --is-public False \
--file ~/images/cirros-0.3.1~pre4-x86_64-vmlinuz


Upload RAM image

$ glance image-create --name "cirros-threepart-ramdisk" \
--disk-format ari --container-format ari --is-public False \
--file ~/images/cirros-0.3.1~pre4-x86_64-initrd


Upload three-part image

$ glance image-create --name "cirros-threepart" --disk-format ami \
--container-format ami --is-public False \
--property kernel_id=$KID-property ramdisk_id=$RID \
--file ~/images/cirros-0.3.1~pre4-x86_64-blank.img


Register raw image

$ glance image-create --name "cirros-qcow2" --disk-format qcow2 \
--container-format bare --is-public False \
--file ~/images/cirros-0.3.1~pre4-x86_64-disk.img


Compute (nova)

List instances, check status of instance

$ nova list


List images

$ nova image-list


List flavors

$ nova flavor-list


Boot an instance using flavor and image names (if names are unique)

$ nova boot --image IMAGE --flavor FLAVOR INSTANCE_NAME
$ nova boot --image cirros-0.3.1-x86_64-uec --flavor m1.tiny \
MyFirstInstance


Login to instance

# ip netns
# ip netns exec NETNS_NAME ssh USER@SERVER
# ip netns exec qdhcp-6021a3b4-8587-4f9c-8064-0103885dfba2 \
ssh cirros@10.0.0.2


Note

In CirrOS the password for user cirros is “cubswin:)” without the quotes.

Show details of instance

$ nova show NAME
$ nova show MyFirstInstance


View console log of instance

$ nova console-log MyFirstInstance


Set metadata on an instance

$ nova meta volumeTwoImage set newmeta='my meta data'


Create an instance snapshot

$ nova image-create volumeTwoImage snapshotOfVolumeImage
$ nova image-show snapshotOfVolumeImage


Pause, suspend, stop, rescue, resize, rebuild, reboot an instance

Pause

$ nova pause NAME
$ nova pause volumeTwoImage


Unpause

$ nova unpause NAME


Suspend

$ nova suspend NAME


Unsuspend

$ nova resume NAME


Stop

$ nova stop NAME


Start

$ nova start NAME


Rescue

$ nova rescue NAME
$ nova rescue NAME --rescue_image_ref RESCUE_IMAGE


Resize

$ nova resize NAME FLAVOR
$ nova resize my-pem-server m1.small
$ nova resize-confirm my-pem-server1


Rebuild

$ nova rebuild NAME IMAGE
$ nova rebuild newtinny cirros-qcow2


Reboot

$ nova reboot NAME
$ nova reboot newtinny


Inject user data and files into an instance

$ nova boot --user-data FILE INSTANCE
$ nova boot --user-data userdata.txt --image cirros-qcow2 \
--flavor m1.tiny MyUserdataInstance2


To validate that the file was injected, use ssh to connect to the instance, and look in /var/lib/cloud for the file.

Inject a keypair into an instance and access the instance with that keypair

Create keypair

$ nova keypair-add test > test.pem
$ chmod 600 test.pem


Start an instance (boot)

$ nova boot --image cirros-0.3.0-x86_64 --flavor m1.small \
--key_name test MyFirstServer


Use ssh to connect to the instance

# ip netns exec qdhcp-98f09f1e-64c4-4301-a897-5067ee6d544f \
ssh -i test.pem cirros@10.0.0.4


Manage security groups

Add rules to default security group allowing ping and SSH between instances in the default security group

$ nova secgroup-add-group-rule default default icmp -1 -1
$ nova secgroup-add-group-rule default default tcp 22 22


Networking (neutron)

Create network

$ neutron net-create NAME


Create a subnet

$ neutron subnet-create NETWORK_NAME CIDR
$ neutron subnet-create my-network 10.0.0.0/29


外部网络

命令在controller中运行,受限source keystonerc_admin

创建网络

neutron net-create ext-net --router:external True \
--provider:physical_network external --provider:network_type flat


创建子网

分配的Floating IP为192.168.8.205~210,网关是192.168.8.254,网段掩码:192.168.8.0/24

neutron subnet-create ext-net --name ext-subnet2 \
--allocation-pool start=192.168.8.205,end=192.168.8.210 \
--disable-dhcp --gateway 192.168.8.254 192.168.8.0/24


租户网络

测试普通租户能够正常建立网络, 先source keystonerc_demo

创建租户网(默认使用DHCP)

neutron net-create demo-net


创建租户子网

网段和掩码都可以自定义(需要网关和掩码)

neutron subnet-create demo-net –name demo-subnet \
–gateway 192.168.1.1 192.168.1.0/24


创建路由器连接外网和租户网

创建租户路由器

neutron router-create demo-router


路由器绑定租户网

neutron router-interface-add demo-router demo-subnet


路由器绑定外部网

neutron router-gateway-set demo-router ext-net


Block Storage (cinder)

Used to manage volumes and volume snapshots that attach to instances.

Create a new volume

$ cinder create SIZE_IN_GB --display-name NAME
$ cinder create 1 --display-name MyFirstVolume


Boot an instance and attach to volume

$ nova boot --image cirros-qcow2 --flavor m1.tiny MyVolumeInstance


List volumes, notice status of volume

$ cinder list


Attach volume to instance after instance is active, and volume is available

$ nova volume-attach INSTANCE_ID VOLUME_ID auto
$ nova volume-attach MyVolumeInstance /dev/vdb auto


Manage volumes after login into the instance

List storage devices

# fdisk -l


Make filesystem on volume

# mkfs.ext3 /dev/vdb


Create a mountpoint

# mkdir /myspace


Mount the volume at the mountpoint

# mount /dev/vdb /myspace


Create a file on the volume

# touch /myspace/helloworld.txt
# ls /myspace


Unmount the volume

# umount /myspace


Object Storage (swift)

Display information for the account, container, or object

$ swift stat
$ swift stat ACCOUNT
$ swift stat CONTAINER
$ swift stat OBJECT


List containers

$ swift list
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: