I have decided to summarize in one page all useful Openstack commands. This post will be useful to anyone interested in learning Openstack cloud commands or use it as a daily reference.
Openstack commands: | Old equivalents: |
---|---|
General commands: | |
openstack image list | glance image-list |
Server commands: | |
openstack server show [SERVER] | nova show [SERVER] |
Server console commands: | |
openstack console log show | nova console-log |
SSH Keypairs*: | |
openstack keypair create [KEYPAIR] > key.pem openstack keypair show[KEYPAIR] --public-key > key.pub openstack keypair show --public-key [KEYPAIR] | nova keypair-add [KEYPAIR] > key.pem nova keypair-show [KEYPAIR] | grep Public | awk -F': ' '{print $2}' > ./.ssh/key.pub nova keypair-show [KEYPAIR] |
Metadata**: | |
Key-value pairs:openstack server create --property [KEY]=[VALUE] Script (any language): openstack server create --user-data [SCRIPT] Cloud-config file (yaml) openstack server create --user-data [FILE] File injection openstack server create --file [DEST_FILE]=[SRC_FILE] | nova boot --meta [KEY]=[VALUE] nova boot --user-data [SCRIPT] nova boot --user-data [FILE] nova boot --file [DEST_FILE]=[SRC_FILE] |
** There can only be 1 user-data option, but many property and file options .
Metadata is retrieved by process cloud-int in cloud images .
Server requests with curl http://169.254.169.254 –> Metadata service (nova) which replies with
data in JSON format <– (Restful API).
Openstack network related commands: |
---|
Security group: |
openstack security group create [SEC_GROUP] |
Network: |
openstack network list |
Subnet: |
openstack subnet list |
Port: |
openstack port list |
Floating IP: |
openstack floating ip list |
Router: |
openstack router create [ROUTER] set [ROUTER] gateway: neutron router-gateway-set [ROUTER] public clear [ROUTER] gateway: neutron router-gateway-clear [ROUTER] add private subnet to [ROUTER]: openstack router add subnet [ROUTER] private_subnet remove private subnet to [ROUTER]: openstack router remove subnet [ROUTER] private_subnet list [ROUTER] interfaces: openstack port list --router [ROUTER] |
** You can associate floating ip with specific port by adding –port PORT
*** You could also add –fixed-ip [subnet=SUBNET|ip-address=IP_ADDRESS]
Metadata related commands |
---|
Server*: |
retrieve metadata info:curl http://169.254.169.254/ retrieve latest metadata:curl http://169.254.169/254/latest meta-data/$:curl http://169.254.169/254/latest/meta-data retrieve floating ip:curl http://169.254.169/254/latest/meta-data/public-ipv4 retrieve openstack metadata:curl http://169.254.169.254/openstack retrieve latest metadata:curl http://169.254.169.254/openstack/metadata retrieve meta_data.json:curl http://169.254.169.254/openstack/meta_data.json |
Openstack commands: | Old commands: |
---|---|
Server creation*: | |
openstack server create \ | nova boot --image [IMAGE] \ |
Few examples: |
---|
Create cirros-image: |
openstack image create --public --container-format=bare --disk-format=qcow2 --file cirros-0.3.4-x86_64-disk.img cirros-image |
Create network: |
neutron net-create external_network --provider:network_type flat --provider:physical_network extnet --router:external |
Create subnet: |
neutron subnet-create --name public_subnet --enable_dhcp=False --allocation-pool=start=172.30.152.10,end=172.30.152.40 --gateway=172.30.152.1 external_network 172.30.152.0/24 |
Create server: |
openstack server create --image 9d904b2f-8774-4db8-b195-8aa47e3ebe3c --flavor 1 --nic net-id=4d75d36b-cc99-46b3-83aa-6ae5a96ae38e cirros |
Cloud config* examples: |
---|
Configure time zone: |
#cloud-config |
Install packages, specific versions** |
#cloud-config |
Upgrade all packages**: |
#cloud-config |
Install NTP if neccessary and configure NTP server map |
#cloud-config |
Configure CentOS users centos and root with password |
#cloud-config |
** Works with all package managers if specific distro-package is not specified f.e. 2.7.3-0ubuntu3.1