Verify the Image Service installation To test the Image Service installation, download at least one virtual machine image that is known to work with OpenStack. For example, CirrOS is a small test image that is often used for testing OpenStack deployments (CirrOS downloads). This walk through uses the 64-bit CirrOS QCOW2 image. For more information about how to download and build images, see OpenStack Virtual Machine Image Guide. For information about how to manage images, see the OpenStack User Guide. Download the image into a dedicated directory using wget or curl: $ mkdir images $ cd images/ $ wget http://cdn.download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-disk.img Upload the image to the Image Service: # glance image-create --name=imageLabel --disk-format=fileFormat \ --container-format=containerFormat --is-public=accessValue < imageFile Where: imageLabel Arbitrary label. This is the name by which users will refer to the image. fileFormat Specifies the format of the image file. Valid formats include qcow2, raw, vhd, vmdk, vdi, iso, aki, ari, and ami. You can verify the format using the file command: $ file cirros-0.3.1-x86_64-disk.img cirros-0.3.1-x86_64-disk.img: QEMU QCOW Image (v2), 41126400 bytes containerFormat Specifies the container format. Valid formats include: bare, ovf, aki, ari and ami. Specify bare to indicate that the image file is not in a file format that contains metadata about the virtual machine. Although this field is currently required, it is not actually used by any of the OpenStack services and has no effect on system behavior. Because the value is not used anywhere, it safe to always specify bare as the container format. accessValue Specifies image access: true - All users will be able to view and use the image. false - Only administrators will be able to view and use the image. imageFile Specifies the name of your downloaded image file. For example: # glance image-create --name="CirrOS 0.3.1" --disk-format=qcow2 \ --container-format=bare --is-public=true < cirros-0.3.1-x86_64-disk.img +------------------+--------------------------------------+ | Property | Value | +------------------+--------------------------------------+ | checksum | d972013792949d0d3ba628fbe8685bce | | container_format | bare | | created_at | 2013-10-08T18:59:18 | | deleted | False | | deleted_at | None | | disk_format | qcow2 | | id | acafc7c0-40aa-4026-9673-b879898e1fc2 | | is_public | True | | min_disk | 0 | | min_ram | 0 | | name | CirrOS 0.3.1 | | owner | efa984b0a914450e9a47788ad330699d | | protected | False | | size | 13147648 | | status | active | | updated_at | 2013-05-08T18:59:18 | +------------------+--------------------------------------+ Because the returned image ID is generated dynamically, your deployment generates a different ID than the one shown in this example. Confirm that the image was uploaded and display its attributes: # glance image-list +--------------------------------------+-----------------+-------------+------------------+----------+--------+ | ID | Name | Disk Format | Container Format | Size | Status | +--------------------------------------+-----------------+-------------+------------------+----------+--------+ | acafc7c0-40aa-4026-9673-b879898e1fc2 | CirrOS 0.3.1 | qcow2 | bare | 13147648 | active | +--------------------------------------+-----------------+-------------+------------------+----------+--------+