Creating a Linux VM

From CC Doc
Jump to navigation Jump to search
Other languages:

Parent page: Cloud Quick Start

This page walks you through the process of creating your first VM running a Linux operating system.

SSH key pair

When you start a virtual machine (also often referred to as an instance or a VM), there is no password for an admin or a root account on the virtual machine. This is for security reasons, so that no one can log in with a password (you wouldn't want a hacker to be able to access the brand new virtual machine you just started using some default password...).

OpenStack creates your VM with one SSH public key installed and you can only log in using this SSH key pair. The SSH public key can either come from a key pair which you have already created on some other machine, or can be created by OpenStack. If you are using an existing key pair from a remote machine, you will need to import the SSH public key into OpenStack so that it can be injected into the newly created VM. Alternatively, OpenStack can create a key pair for you with the private key downloaded to your local machine. In order to manage your key pairs, click on Access & Security from the left menu, then on the Key Pairs tab. From here you will have the option of importing an existing key pair, or creating a new key pair.

Importing an existing key pair

Import key pair (Click for larger image)
  1. Click Import-Key-Pair-Button.png; the Import Key Pair window is displayed.
  2. Name your key pair.
  3. Paste your public key.
    Ensure your pasted public key contains no newline characters or extra spaces.
  4. Click on the Import Key Pair button.

Creating a new key pair

Create key pair (Click for larger image)
  1. Click on Create-Key-Pair-Button.png; the Create Key Pair window is displayed.
  2. Name your key pair.
  3. Click on the Create Key Pair button.
  4. Save the <key name>.pem on your disk.
On your local machine (not the VM), you will need to change key permissions with the chmod 400 <key name>.pem command in order to connect with this key.
To use the key downloaded from OpenStack with PuTTY or MobaXterm to connect to the VM, you need to convert it to a format compatible with that software (see Generating SSH keys in Windows#Converting an OpenStack Key.)

Launching a VM

Launch Instance (Click for larger image)

To create a virtual machine, click on the Instances menu item on the left, then click on Launch-Instance-Button.png

A form is displayed where you define your virtual machine (if you are following along with this example, you can use the same values).

  • Details tab
    • Availability Zone: There is only one zone; do not change its name.
    • Instance Name: Enter a name for your virtual machine. Rules for valid host names apply.
    • Flavor: The flavor defines virtual machine hardware specifications. For a first attempt, pick either 'c1-3.75gb-36' flavor on east-cloud or 'c1-7.5gb-30' flavor on Arbutus. For more details, see Virtual machine flavors. Note: If choosing a 'p' flavor you should also choose boot from image (creates a new volume) for the boot source below.
    • Instance Count: Number of virtual machines to create.
    • Instance Boot Source: What source should be used to boot the VM.

      Boot from image indicates that you wish to boot from an already created image. Another common option is Boot from volume which allows one to boot from an existing volume which is commonly done with "p" flavors.

    • Image Name: name of the image to boot from, e.g. CentOS-7-x86-64-GenericCloud-1503.
    • Project Limits: The green bars reflect the fraction of your available resources that will be consumed by the VM you are about to launch. If the bars become red, the flavor chosen will consume more resources than your project has available. Blue bars indicate any existing resources your project may be using.
  • Access & Security tab
    • Key Pair: Select your SSH key pair.

      If you have only one, it is selected by default. If you do not have a key pair, please see above.

  • Security Groups: ensure that the default security group is checked.
  • Networking tab: Do not change this now.

    Networking will be discussed later, after you have launched a virtual machine.

  • Post-Creation tab: Do not change this now.

    This is where you would paste a cloud-init script which can do things such as install and configure software, add users, and additional SSH keys (see accessing a VM with multiple users) in an automated step after the VM is created. See cloudinit for more details about cloud-init.

  • Advanced Options tab: Leave Disk Partition on Automatic for now.

Once you have reviewed all the tabs and defined your virtual machine, click on the Launch button and your virtual machine will be created. The Instances list will be displayed and the Task field will show the current task for the VM; it will likely be spawning initially. Once the VM has spawned it will have the Power State of Running. It may take a few minutes for your virtual machine to start, depending on a variety of factors.

Note: When creating a persistent service, we recommend that you boot your virtual machine from a volume; see Configuring a data or web server.


Manage Floating IP (Click for larger image)
Add Rule (Click for larger image)

On the Instances page is a list VMs with their IP address(es) displayed in the IP Address column. Each VM will have at least one private IP address, but some may also have a second public IP assigned to it.

Private IP

When your OpenStack project is created a local network is also created for you. This local network is used to connect VMs within that project allowing them to communicate with each other and the outside world. Their private IP address does not allow the outside world to reference that VM. Any VM created in your project will have a private IP address assigned to it from this network of the form 192.168.X.Y.

Public IP

Public IPs allow outside services and tools to initiate contact with your VM, such as allowing you to connecting to it to perform administrative tasks or serve up web content. Public IPs can also be pointed to by domain names.

To assign a public IP to a VM, you need to select Associate Floating IP from the drop-down menu button (indicated by ▼) of the Actions column in the Instances list. If this is your first time associating a floating IP, your project hasn't been assigned an external IP address yet. You need to click on the “+” sign to bring up the Allocate Floating IP dialog box. There is only one pool of public addresses, so the correct pool will already be selected; click on the Allocate IP button. The Manage Floating IP Associations screen is displayed again, indicating the IP address and the port (or VM) to which it will be associated (or more specifically NATted); click on the Associate button.

Firewall, add rules to allow SSH

To connect to your virtual machine via SSH, you will need to allow access for SSH to your VM.

  1. On the Security Groups tab, select Access & Security; on the default row, click Manage-Rules-Button.png
  2. On the next screen, click Add-Rule-Button.png
  3. SSH has a predefined rule. Select it in the Rules dropdown menu and leave CIDR' under Remote.
  4. It is a good security practice to replace the in the CIDR text box with <your-ip>/32.

    If you don't know your current IP address you can see it by going to in your browser.

    Leaving the will allow anyone to attempt a connection with your VM via SSH. The suggested replacement will restrict SSH access to your VM only from this IP. If you want to allow SSH access from other IPs you can add additional SSH rules with different IP address or you can specify a range of IP addresses by using this tool to calculate your CIDR rule from a range of IP addresses.

  5. Finally, click the Add button.

Note: be sure not to remove the default security rules as this will affect the ability of your VM to function properly (see security groups).

Connecting to your VM with SSH

If you created a key pair on the first step, you will need to know where it is.

Connecting from a Linux machine

[name@server ~]$  ssh -i /path/where/your/key/is/my_key.key <user name>@<public IP of your server>

where <user name> is the name of the user connecting and <public IP of your server> is the public IP you set in the previous step. The default user name depends on the image.

Image distribution name <user name>
Debian debian
Ubuntu ubuntu
CentOS centos
Fedora fedora

These default users have full sudo privileges. The root account is normally disabled.

Connecting from a Windows machine

See Connecting with PuTTY or Connecting with MobaXTerm.

Where to go from here