OpenStack command-line interface cheat sheet

来源:互联网 发布:php web服务器搭建 编辑:程序博客网 时间:2024/06/02 20:58

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
0 0
原创粉丝点击