Launch instances Instances are virtual machines that run inside the cloud. Before you can launch an instance, gather the following parameters: The instance source, which is an image or snapshot. Alternatively, you can boot from a volume, which is block storage, to which you've copied an image or snapshot. The image or snapshot, which represents the operating system. A name for your instance. The flavor for your instance, which defines the compute, memory, and storage capacity of nova computing instances. A flavor is an available hardware configuration for a server. It defines the "size" of a virtual server that can be launched. User Data is a special key in the metadata service that holds a file that cloud-aware applications in the guest instance can access. For example, the cloudinit system is an open-source package from Ubuntu that is available on various Linux distributions including Ubuntu, Fedora, and openSUSE and that handles early initialization of a cloud instance that uses user data. Access and security credentials, which include one or both of the following credentials: A keypair for your instance, which are SSH credentials that are injected into images when they are launched. For this to work, the image must contain the cloud-init package. Create at least one keypair for each project. If you already have generated a keypair with an external tool, you can import it into OpenStack. You can use the keypair for multiple instances that belong to that project. A security group, which defines which incoming network traffic is forwarded to instances. Security groups hold a set of firewall policies, known as security group rules. If needed, you can assign a floating (public) IP address to a running instance and attach a block storage device, or volume, for persistent storage. After you gather the parameters you need to launch an instance, you can launch it from an image or a volume. You can launch an instance directly from one of the available OpenStack images or from an image that you have copied to a persistent volume. The OpenStack Image Service provides a pool of images that are accessible to members of different projects.
Gather parameters to launch an instance On a shell, source the OpenStack RC file. See . List the available flavors: $ nova flavor-list +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ | 1 | m1.tiny | 512 | 0 | 0 | | 1 | 1.0 | True | | 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | | 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | | 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ Note the ID of the flavor that you want to use for your instance. List the available images: $ nova image-list +--------------------------------------+---------------------------------+--------+--------+ | ID | Name | Status | Server | +--------------------------------------+---------------------------------+--------+--------+ | 397e713c-b95b-4186-ad46-6126863ea0a9 | cirros-0.3.1-x86_64-uec | ACTIVE | | | df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | ACTIVE | | | 3cf852bd-2332-48f4-9ae4-7d926d50945e | cirros-0.3.1-x86_64-uec-ramdisk | ACTIVE | | +--------------------------------------+---------------------------------+--------+--------+ You can also filter the image list by using grep to find a specific image, like this: $ nova image-list | grep 'kernel' | df430cc2-3406-4061-b635-a51c16e488ac | cirros-0.3.1-x86_64-uec-kernel | ACTIVE | | Note the ID of the image that you want to boot your instance from. List the available security groups: If you are an admin user, specify the --all-tenants parameter to list groups for all tenants. $ nova secgroup-list --all-tenants +----+---------+-------------+----------------------------------+ | Id | Name | Description | Tenant_ID | +----+---------+-------------+----------------------------------+ | 2 | default | default | 66265572db174a7aa66eba661f58eb9e | | 1 | default | default | b70d90d65e464582b6b2161cf3603ced | +----+---------+-------------+----------------------------------+ If you have not created any security groups, you can assign the instance to only the default security group. You can also list rules for a specified security group: $ nova secgroup-list-rules default This example modifies the default security group to allow HTTP traffic on the instance by permitting TCP traffic on Port 80. List the available keypairs. $ nova keypair-list Note the name of the keypair that you use for SSH access.
Launch an instance from an image Now you have all parameters required to launch an instance, run the following command and specify the server name, flavor ID, and image ID. Optionally, you can provide a key name for access control and security group for security. You can also include metadata key and value pairs. For example, you can add a description for your server by providing the --meta description="My Server" parameter. You can pass user data in a local file at instance launch by using the flag --user-data USER-DATA-FILE parameter. $ nova boot --flavor FLAVOR_ID --image IMAGE_ID --key_name KEY_NAME \ --user-data mydata.file --security_group SEC_GROUP NAME_FOR_INSTANCE \ --meta KEY=VALUE --meta KEY=VALUE \ SERVER_NAME Depending on the parameters that you provide, the command returns a list of server properties. A status of BUILD indicates that the instance has started, but is not yet online. A status of ACTIVE indicates that the instance is active. +-------------------------------------+--------------------------------------+ | Property | Value | +-------------------------------------+--------------------------------------+ | OS-EXT-STS:task_state | scheduling | | image | cirros-0.3.1-x86_64-uec | | OS-EXT-STS:vm_state | building | | OS-EXT-SRV-ATTR:instance_name | instance-00000002 | | flavor | m1.small | | id | b3cdc6c0-85a7-4904-ae85-71918f734048 | | security_groups | [{u'name': u'default'}] | | user_id | 376744b5910b4b4da7d8e6cb483b06a8 | | OS-DCF:diskConfig | MANUAL | | accessIPv4 | | | accessIPv6 | | | progress | 0 | | OS-EXT-STS:power_state | 0 | | OS-EXT-AZ:availability_zone | nova | | config_drive | | | status | BUILD | | updated | 2013-07-16T16:25:34Z | | hostId | | | OS-EXT-SRV-ATTR:host | None | | key_name | None | | OS-EXT-SRV-ATTR:hypervisor_hostname | None | | name | myCirrosServer | | adminPass | tVs5pL8HcPGw | | tenant_id | 66265572db174a7aa66eba661f58eb9e | | created | 2013-07-16T16:25:34Z | | metadata | {} | +-------------------------------------+-------------------------------------- Copy the server ID value from the id field in the output. You use this ID to get details for or delete your server. Copy the administrative password value from the adminPass field. You use this value to log into your server. Arbitrary local files can also be placed into the instance file system at creation time using the --file <dst-path=src-path> option. You may store up to 5 files. For example, if you have a special authorized_keys file named special_authorized_keysfile that you want to put on the instance rather than using the regular ssh key injection, you can use the following command: $ nova boot --image ubuntu-cloudimage --flavor 1 \ --file /root/.ssh/authorized_keys=special_authorized_keysfile Check if the instance is online: $ nova list The list shows the ID, name, status, and private (and if assigned, public) IP addresses for all instances in the project that you belong to: +--------------------------------------+----------------------+--------+------------+-------------+------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+----------------------+--------+------------+-------------+------------------+ | 84c6e57d-a6b1-44b6-81eb-fcb36afd31b5 | myCirrosServer | ACTIVE | None | Running | private=10.0.0.3 | | 8a99547e-7385-4ad1-ae50-4ecfaaad5f42 | myInstanceFromVolume | ACTIVE | None | Running | private=10.0.0.4 | +--------------------------------------+----------------------+--------+------------+-------------+------------------+ If the status for the instance is ACTIVE, the instance is online. To view the available options for the nova list command, run the following command: $ nova help list If you did not provide a keypair, security groups, or rules, you can only access the instance from inside the cloud through VNC. Even pinging the instance is not possible.