CentOS Stream 9

OpenStack Epoxy : Add VM Images2025/05/21

 

Add Virtual Machine images in Glance.
For example on here, add a CentOS Stream 9 virtual machine image.

[1]

Install KVM HyperVisor, refer to here.
It's unnecessary to set Bridge networking on the section [2] of the link.
Furthermore, Install VM management tools, refer to here.

[2] Create a CentOS Stream 9 image on Glance service Host.
Download the ISO image of CentOS Stream 9 first into a directory before it.
# create a directory for disk image

[root@dlp ~(keystone)]#
mkdir -p /var/kvm/images
# create a disk image

[root@dlp ~(keystone)]#
qemu-img create -f qcow2 /var/kvm/images/centos9.img 10G
# install

[root@dlp ~(keystone)]#
virt-install \
--name centos9 \
--ram 4096 \
--disk path=/var/kvm/images/centos9.img,format=qcow2 \
--vcpus 2 \
--os-variant centos-stream9 \
--network network=default \
--graphics none \
--console pty,target_type=serial \
--location /home/CentOS-Stream-9-latest-x86_64-dvd1.iso \
--extra-args 'console=ttyS0,115200n8'
Starting install...
# after installing OS, login to the VM and configure necessary settings

CentOS Stream 9
Kernel 5.14.0-516.el9.x86_64 on an x86_64

Activate the web console with: systemctl enable --now cockpit.socket

localhost login: root

[root@localhost ~]#
useradd centos

[root@localhost ~]#
passwd centos
[root@localhost ~]#
dnf -y install cloud-init openssh-server

[root@localhost ~]#
vi /etc/cloud/cloud.cfg
# line 15 : if you like to allow SSH password auth, change to [1]
ssh_pwauth:   true

# line 93, 94 : change to [centos] as default user
# if you'd like to allow SSH password auth to the user, chage like follows
system_info:
  default_user:
    name: centos
    lock_passwd: false

# remove existing interface

[root@localhost ~]#
nmcli device

]DEVICE  TYPE      STATE      CONNECTION
enp1s0  ethernet  connected  enp1s0
lo      loopback  unmanaged  --
[root@localhost ~]#
nmcli connection del enp1s0

Connection 'enp1s0' (9f46f8e5-6a0e-3ea0-bbc5-838a48355a38) successfully deleted.
[root@localhost ~]#
systemctl enable cloud-init sshd

[root@localhost ~]#
shutdown -h now

# finally, undefine the VM

[root@dlp ~(keystone)]#
virsh undefine centos9

[3] Add the virtual image to Glance.
[root@dlp ~(keystone)]#
openstack image create "CentOS-Stream9" --file /var/kvm/images/centos9.img --disk-format qcow2 --container-format bare --public

+------------------+----------------------------------------------------------------------------+
| Field            | Value                                                                      |
+------------------+----------------------------------------------------------------------------+
| checksum         | 14f22f09c3a917436d95eb799d522a97                                           |
| container_format | bare                                                                       |
| created_at       | 2025-05-21T00:31:36Z                                                       |
| disk_format      | qcow2                                                                      |
| file             | /v2/images/8bbf2495-d1b0-4c12-89d3-bf6ca71b2a2d/file                       |
| id               | 8bbf2495-d1b0-4c12-89d3-bf6ca71b2a2d                                       |
| min_disk         | 0                                                                          |
| min_ram          | 0                                                                          |
| name             | CentOS-Stream9                                                             |
| owner            | 8f6f2ea0aec84c6f919d15236063d7c0                                           |
| properties       | os_hash_algo='sha512', os_hash_value='3476d5978bce4bc3f9273740704c6ad40... |
| protected        | False                                                                      |
| schema           | /v2/schemas/image                                                          |
| size             | 2759000064                                                                 |
| status           | active                                                                     |
| tags             |                                                                            |
| updated_at       | 2025-05-21T00:31:47Z                                                       |
| virtual_size     | 10737418240                                                                |
| visibility       | public                                                                     |
+------------------+----------------------------------------------------------------------------+

[root@dlp ~(keystone)]#
openstack image list

+--------------------------------------+----------------+--------+
| ID                                   | Name           | Status |
+--------------------------------------+----------------+--------+
| 8bbf2495-d1b0-4c12-89d3-bf6ca71b2a2d | CentOS-Stream9 | active |
+--------------------------------------+----------------+--------+
[4] By the way, if you got an image from internet, it's OK to simply add it like follows.
[root@dlp ~(keystone)]#
wget http://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img
[root@dlp ~(keystone)]#
openstack image create "Ubuntu2404-Official" --file ubuntu-24.04-server-cloudimg-amd64.img --disk-format qcow2 --container-format bare --public

+------------------+-----------------------------------------------------------------------------+
| Field            | Value                                                                       |
+------------------+-----------------------------------------------------------------------------+
| checksum         | 45d8e9033f08b2afe71b0c745959e098                                            |
| container_format | bare                                                                        |
| created_at       | 2025-05-21T00:34:10Z                                                        |
| disk_format      | qcow2                                                                       |
| file             | /v2/images/1a7a317d-0ab1-4683-8799-8533414227a6/file                        |
| id               | 1a7a317d-0ab1-4683-8799-8533414227a6                                        |
| min_disk         | 0                                                                           |
| min_ram          | 0                                                                           |
| name             | Ubuntu2404-Official                                                         |
| owner            | 8f6f2ea0aec84c6f919d15236063d7c0                                            |
| properties       | os_hash_algo='sha512', os_hash_value='fa1ce64afbed1ec6b9bc10653aa08fdb44... |
| protected        | False                                                                       |
| schema           | /v2/schemas/image                                                           |
| size             | 613540352                                                                   |
| status           | active                                                                      |
| tags             |                                                                             |
| updated_at       | 2025-05-21T00:34:13Z                                                        |
| virtual_size     | 3758096384                                                                  |
| visibility       | public                                                                      |
+------------------+-----------------------------------------------------------------------------+
Matched Content