Create Your First VM You can use OpenStack API or the Dashboard to manage your own IaaS: go to http://10.0.0.10/horizon with demo / password credentials. To create a keypair with the dashboard Edit the security group "Default" to allow ICMP and SSH. Create a personal keypair, default_key. If you see an Error: Unable to create keypair: Key pair 'default_key' already exists, it may have been created using the command-line method below. Modify the permissions on the keypair file, default_key. # chmod 400 default_key Go to "Instances" and click "Launch Instance" for spawning a new VM. To create a keypair on the command line at the Cloud Controller Copy the ~/openrc file as ~/demorc and edit the contents to suit the demo user. Create an SSH keypair and add it to Nova: # ssh-keygen -f ~/.ssh/id_rsa -t rsa -N '' # nova keypair-add --pub_key ~/.ssh/id_rsa.pub default_key If you see an Error: Unable to create keypair: Key pair 'default_key' already exists, it may have been created using the Dashboard method above. Modify the permissions on the keypair file, default_key. # chmod 400 default_key To launch an instance Edit the "default" Security Group to allow SSH and ICMP: # nova secgroup-add-rule default tcp 22 22 0.0.0.0/24 # nova secgroup-add-rule default icmp -1 -1 0.0.0.0/24 Query the Image Service and note the ID of the image you want to launch: # nova image-list Launch an instance: # nova boot --flavor 1 --image <image_id> --key-name default_key \ my_instance Wait a few seconds and check the status of your instance: # nova show my_instance If the status is in Error state, check the nova-scheduler log: # tail /var/log/nova/nova-scheduler.log If the status is in Available state, check the instance's console for booting status: # nova console-log my_instance To SSH into the launched instance After your instance has successfully booted and the console log is showing a log in prompt, you may now SSH into your instance. In order to do this, though, you have to work with the Linux network namespaces on the Network Controller: Print a list of all namespaces: # ip netnsThe output should contain two lines: one beginning with qrouter and the other beginning with qdhcp. Run SSH inside the qdhcp namespace. This example shows how to SSH to the Ubuntu image uploaded earlier: # ip netns exec qdhcp-c73d082f-d7ed-4b53-ac93-7a6a4c3fa3aa \ ssh -i default_key ubuntu@10.5.5.2 Run SSH inside the qdhcp namespace. This example shows how to SSH to the Fedora image uploaded earlier: # ip netns exec qdhcp-c73d082f-d7ed-4b53-ac93-7a6a4c3fa3aa \ ssh -i default_key fedora@10.5.5.2 Run SSH inside the qdhcp namespace. This example shows how to SSH to the CirrOS image uploaded earlier: # ip netns exec qdhcp-c73d082f-d7ed-4b53-ac93-7a6a4c3fa3aa \ ssh -i default_key cirros@10.5.5.2 Once you have logged in as the ubuntufedoracirros user with the keypair, you can create additional users and log out and back in with those credentials. If you are using the Cirros image, you can login with Cirros default credentials (username: cirros, password cubswin:)) and do not need the keypair.