/tutorial-oscli

Tutorial Openstack CLI

GNU General Public License v3.0GPL-3.0

tutorial-oscli

Tutorial Openstack CLI

Access to machine for the tutorial

The openstack clients pre-installed in this machine, you can access with:

ssh <USERNAME>@tut.ncg.ingrid.pt

You will find the openstack credentials for your user, so you can set the environment variables with:

source os-tut.sh

This will set the following environment variables:

OS_PROJECT_DOMAIN_NAME=Default
OS_USER_DOMAIN_NAME=Default
OS_PROJECT_NAME=tutorial
OS_USERNAME=<USERNAME>
OS_PASSWORD=<PASSWORD>
OS_AUTH_URL=https://stratus.ncg.ingrid.pt:5000/v3
OS_IDENTITY_API_VERSION=3
OS_IMAGE_API_VERSION=2

From here on you should be able to do the rest of the tutorial. Test with:

openstack project list

Create an ssh keypair

The access to VM instances is done through an ssh key pair, where your public key is inserted into the VM, when it is instantiated.

To create an ssh keypair, you should issue the following command:

ssh-keygen

By default it generates an RSA 2048 bit key that is stored in your $HOME/.ssh/ directory, you should set a strong passphrase

.ssh/id_rsa is your ssh private key, and .ssh/id_rsa.pub is your ssh public key.

You can list all keypairs already in openstack:

openstack keypair list

The next step is to insert your ssh public key in openstack, you should be careful to choose a keypair name that does not yet exist:

openstack keypair create --public-key .ssh/id_rsa.pub ${LOGNAME}-key

Instantiate a VM

In order to instantiate a VM, the following information is needed:

  • The image name
  • The flavor name
  • The network name
  • The keypair name

List images and choose one:

openstack image list

List flavors and choose one:

openstack flavor list

List all networks:

openstack network list

Now you can create a server, note the name of the server should not exist, the list of servers can be checked with:

openstack server list

openstack server create --flavor svc1.s --key-name ${LOGNAME}-key --network tutorial_net --image centos7-x86_64-raw ${LOGNAME}-server

The status of the newly created server:

openstack server show ${LOGNAME}-server

Where the following attributes can be checked:

| OS-EXT-STS:power_state      | Running    |
| OS-EXT-STS:vm_state         | active     |

At this point the VM only has a private IP, and is not accessible from a public network:

| addresses  | tutorial_net=192.168.1.157 

Associate a floating public IP with the VM

In the previous section you have listed the available networks, it includes the public network called public_net, you can create a public IP with:

openstack floating ip create public_net

It will show in particular the attribute:

| floating_ip_address | 194.210.120.240

Get the server ID with:

openstack server show ${LOGNAME}-server -f value -c id

Now you can associate the floating public IP with the server:

openstack server add floating ip <SERVER_ID> 194.210.120.240

Now you can confirm that this floating public IP has been associated to your VM:

openstack server show ${LOGNAME}-server

| addresses  | tutorial_net=192.168.1.157, 194.210.120.240

Since the base image of the VM is Centos7, the default user is centos, for ubuntu base images the default user is ubuntu.

You can now access the VM with ssh:

ssh centos@194.210.120.240

Cleanup

To delete the server:

openstack server delete u60-server

Authors

  • Mario David
  • Jorge Gomes
  • (Add more contributers here)