Upload CentOS 8 Cloud Image to OpenStack Glance

How to add CentOS 8 cloud / KVM image to OpenStack? How to run CentOS 8 instance / VM on OpenStack? The Openstack Glance service enables users to discover, register and retrieve virtual machine images. The default storage location for these images is / var / lib / glance / images / Its backend is a file. In this guide, we upload the CentOS 8 KVM cloud image to the Openstack Glance service.

For RHEL 8: How to add RHEL 8 qcow2 image to OpenStack Glance

Vagrant and Cloud images for CentOS 8 were released when CentOS Linux 8 (1911) was opened to the public. This version is derived from the Red Hat Enterprise Linux 8.1 source code. Cloud image is located at cloud.centos.org For CentOS 8 and CentOS 8 Stream.

OpenStack Glance supports the following image formats:

  • raw (Unstructured format)
  • qcow2 (Qemu / KVM, support copy-on-write)
  • iso (Archive format for discs; for example, CD)
  • VCR (Hyper-V, common in virtual machine monitors of companies such as VMware, Xen, Microsoft, VirtualBox, etc.)
  • vdi (Qemu / VirtualBox)
  • vmdk (VMware)
  • bare (Excluding metadata)
  • Autumn / Amy / Ali (Amazon kernel, ramdisk or machine image)
  • and many more.

Upload CentOS 8 Cloud Image to OpenStack Glance

Install wget to download the cloud image:

--- Debian / Ubuntu ---
$ sudo apt install -y wget

--- CentOS / Fedora ---
$ sudo yum -y install wget
$ sudo dnf -y install wget

Download the latest Cloud image from cloud.centos.org.

--- CentOS 8 Linux x86_64 ---
wget https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.1.1911-20200113.3.x86_64.qcow2

--- CentOS 8 Stream Linux x86_64 ---
wget https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20200113.0.x86_64.qcow2

Before uploading, you can use our guide as a reference to further customize the qcow2 image.

How to customize Qcow2 / Raw Linux OS disk image with virt-customize

Then get the openstack environment.

source ~/.keystonerc

And upload CentOS 8 Cloud Images to OpenStack Glance.

--- CentOS 8 Linux x86_64 ---
$ openstack image create 
    --container-format bare 
    --disk-format qcow2 
    --file CentOS-8-GenericCloud-8.1.1911-20200113.3.x86_64.qcow2 

--- CentOS 8 Stream Linux x86_64 ---
$ openstack image create 
    --container-format bare 
    --disk-format qcow2 
    --file CentOS-Stream-GenericCloud-8-20200113.0.x86_64.qcow2

If you do not have the OpenStack CLI, please check: How to install and configure the OpenStack Client on Linux

Confirm if the image is available in Glance:

$ openstack image list | grep CentOS-8
| adbe1f0c-665e-481a-b689-e32414339415 | CentOS-8        | active |
| 035221af-97e4-4801-b171-fc1b6fc2245d | CentOS-8-Stream | active |

You can also upload images using the Horizon web interface-navigate to Project> Calculation > image > Create image

Provide image name, description, browse and select image from source, select image visibility, and click “Create image“Button.

After the picture is uploaded, the details will be in Pictures section.

Upload CentOS 8 Cloud Image to OpenStack Glance

You can now launch instances from the uploaded images. See the following example:

$ openstack server create 
 --image CentOS-8 
 --key-name jmutai 
 --flavor m1.small 
 --security-group  7fffea2a-b756-473a-a13a-219dd0f1913a  
 --network private  

Confirm server creation:

$ openstack server list 
| ID                                   | Name              | Status  | Networks                          | Image     | Flavor   |
| 9e1e1b14-db2c-405e-9361-6b1b08c707b8 | mycentos8         | ACTIVE  | private=               | CentOS-8  | m1.small |

Let’s test if we can SSH to the created server.

$ ssh [email protected]
Warning: Permanently added '' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/jmutai/.ssh/id_rsa': 
Activate the web console with: systemctl enable --now cockpit.socket

[[email protected] ~]$ cat /etc/os-release 
NAME="CentOS Linux"
VERSION="8 (Core)"
ID_LIKE="rhel fedora"
PRETTY_NAME="CentOS Linux 8 (Core)"


[[email protected] ~]$ exit
Connection to closed.

We can confirm that we are logged in to the CentOS 8 instance by checking the / etc / os-release content.

More guides on CentOS and OpenStack:

How to manage CentOS 8 Linux with Cockpit Web Console

Enable automatic software update on CentOS 8 / RHEL 8

How to join CentOS 8 / RHEL 8 system to Active Directory (AD) domain

How to install CentOS 8 Linux-step by step screenshot

How to resize / expand Cinder in OpenStack

How to rename an instance / server in OpenStack

How to assign a floating IP address to an instance in OpenStack

How to create an OpenStack instance with a fixed / static IP address

How to create OpenStack projects, users and roles