Como fazer upload de imagens VM Cloud para OpenStack Glance
Neste tutorial, veremos como adicionar imagens VM ao serviço de imagem Openstack Glance. Presumo que você já tenha uma configuração do Openstack em execução e o serviço Glance seja executado no nó do controlador.
O que é o serviço de imagens Openstack?
O Openstack Glance permite que os usuários descubram, registrem e recuperem imagens de máquinas virtuais. O local padrão em que essas imagens são armazenadas é /var/lib/glance/images/ com seu back-end sendo um arquivo.
O serviço de imagens Openstack também oferece uma API REST que permite consultar metadados de imagens de máquinas virtuais e recuperar uma imagem real. Você pode armazenar imagens de máquinas virtuais disponibilizadas por meio do serviço de imagem em vários locais, desde sistemas de arquivos simples até sistemas de armazenamento de objetos, como o OpenStack Object Storage.
Obtendo imagens do Glance?
A maneira mais simples de obter uma imagem de máquina virtual que funcione com OpenStack é baixar uma que outra pessoa já tenha criado. A maioria das imagens contém o pacote cloud-init para suportar o par de chaves SSH e injeção de dados do usuário.
Mostrarei como adicionar imagens para vários sistemas operacionais baixando o que outras pessoas já fizeram. Claro, você pode criar suas próprias imagens, mas é mais rápido obter imagens prontas.
Credenciais de login padrão
Abaixo estão os nomes de usuário de login padrão para instâncias criadas a partir das imagens adicionadas em breve.
- Debian: debian
- Fedora: fedora
- Ubuntu: ubuntu
- RHEL: usuário da nuvem
- AlmaLinux: almalinux
- Rocky Linux: rochoso
- CentOS: centos
- CoreOS: núcleo
- Arch Linux: arch
- Gentoo: gentoo
- OpenSUSE: root
- Fedora CoreOS: núcleo
- Cirros: nome de usuário: cirros, senha: cubswin:)
Exemplos:
1. Adicionando imagem Cirros Cloud ao Glance
VERSION=$(curl -s http://download.cirros-cloud.net/version/released)
wget http://download.cirros-cloud.net/$VERSION/cirros-$VERSION-x86_64-disk.img
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file cirros-$VERSION-x86_64-disk.img \
Cirros
2. Adicione a imagem da nuvem Rocky Linux ao Glance
Rocky Linux 9:
wget http://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud.latest.x86_64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file Rocky-9-GenericCloud.latest.x86_64.qcow2 \
Rocky-Linux-9
Rocky Linux 8
wget https://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud.latest.x86_64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file Rocky-8-GenericCloud.latest.x86_64.qcow2 \
Rocky-Linux-8
3. Adicione a imagem da nuvem AlmaLinux ao Glance
Use os comandos abaixo:
Alma Linux 9
wget https://repo.almalinux.org/almalinux/9/cloud/x86_64/images/AlmaLinux-9-GenericCloud-latest.x86_64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file AlmaLinux-9-GenericCloud-latest.x86_64.qcow2 \
AlmaLinux-9
Alma Linux 8
wget https://repo.almalinux.org/almalinux/8/cloud/x86_64/images/AlmaLinux-8-GenericCloud-latest.x86_64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file AlmaLinux-8-GenericCloud-latest.x86_64.qcow2 \
AlmaLinux-8
4. Adicionando imagem do Fedora Cloud ao Openstack
wget http://fedora.mirror.liquidtelecom.com/fedora/linux/releases/36/Cloud/x86_64/images/Fedora-Cloud-Base-36-1.5.x86_64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file Fedora-Cloud-Base-36-1.5.x86_64.qcow2 \
Fedora-36
5. Adicionando imagem da nuvem CentOS ao Openstack
CentOS Stream 8:
wget https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20220913.0.x86_64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file CentOS-Stream-GenericCloud-8-20220913.0.x86_64.qcow2 \
CentOS-Stream-8
CentOS Stream 9:
wget https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20220919.0.x86_64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file CentOS-Stream-GenericCloud-9-20220919.0.x86_64.qcow2 \
CentOS-Stream-9
CentOS 7:
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file CentOS-7-x86_64-GenericCloud.qcow2 \
CentOS-7
6. Adicionando imagem do Ubuntu Cloud ao Openstack
Adicionando imagens baseadas no Ubuntu:
Ubuntu 22.04:
wget http://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file jammy-server-cloudimg-amd64.img \
Ubuntu-22.04
Ubuntu 20.04:
wget http://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file focal-server-cloudimg-amd64.img \
Ubuntu-20.04
Ubuntu 18.04:
wget http://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file bionic-server-cloudimg-amd64.img \
Ubuntu-18.04
7. Adicionando imagem de nuvem Debian ao Openstack
Debian 12 (leitor ávido)
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--property hw_disk_bus=scsi \
--property hw_scsi_model=virtio-scsi \
--property os_type=linux \
--property os_distro=debian \
--property os_admin_user=debian \
--public \
--file debian-12-generic-amd64.qcow2 \
Debian-12
wget https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-generic-amd64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--property hw_disk_bus=scsi \
--property hw_scsi_model=virtio-scsi \
--property os_type=linux \
--property os_distro=debian \
--property os_admin_user=debian \
--public \
--file debian-11-generic-amd64.qcow2 \
Debian-11
Debian 10 (Buster):
wget https://cloud.debian.org/images/cloud/buster/latest/debian-10-generic-amd64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--property hw_disk_bus=scsi \
--property hw_scsi_model=virtio-scsi \
--property os_type=linux \
--property os_distro=debian \
--property os_admin_user=debian \
--public \
--file debian-10-generic-amd64.qcow2 \
Debian-10
Debian 9 (Stretch):
wget http://cdimage.debian.org/cdimage/openstack/current-9/debian-9-openstack-amd64.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--property hw_disk_bus=scsi \
--property hw_scsi_model=virtio-scsi \
--property os_type=linux \
--property os_distro=debian \
--property os_admin_user=debian \
--public \
--file debian-9-openstack-amd64.qcow2 \
Debian-9
8. Adicionando imagem CoreOS Cloud ao Openstack
wget https://stable.release.core-os.net/amd64-usr/current/coreos_production_openstack_image.img.bz2
#wget http://beta.release.core-os.net/amd64-usr/current/coreos_production_openstack_image.img.bz2
bunzip2 coreos_production_openstack_image.img.bz2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--property os_distro=coreos \
--file coreos_production_openstack_image.img \
CoreOS
9. Adicionando imagem de nuvem do Arch Linux ao Openstack
wget https://linuximages.de/openstack/arch/arch-openstack-LATEST-image-bootstrap.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file arch-openstack-LATEST-image-bootstrap.qcow2 \
Arch-Linux
10. Adicionando imagem Gentoo Cloud ao Openstack
wget https://linuximages.de/openstack/gentoo/gentoo-openstack-LATEST-image-bootstrap.qcow2
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file gentoo-openstack-LATEST-image-bootstrap.qcow2 \
Gentoo
11. Adicionando imagem Fedora CoreOS ao OpenStack
Baixe a imagem do Fedora CoreOS:
wget https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/38.20230722.3.0/x86_64/fedora-coreos-38.20230722.3.0-openstack.x86_64.qcow2.xz
Extraia a imagem:
unxz fedora-coreos-38.20230722.3.0-openstack.x86_64.qcow2.xz
Carregar imagem extraída:
openstack image create Fedora-CoreOS \
--public \
--disk-format=qcow2 \
--container-format=bare \
--property os_distro=fedora-coreos \
--file=fedora-coreos-38.20230722.3.0-openstack.x86_64.qcow2
12. Adicionando imagem do Windows Server 2012
Baixe a imagem em https://cloudbase.it/windows-cloud-images/#download
gunzip -cd windows_server_2012_r2_standard_eval_kvm_20170321.qcow2.gz
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file windows_server_2012_r2_standard_eval_kvm_20170321.qcow2 \
Windows-Server-2012-R2-Std
Verifique a lista de imagens disponíveis no Glance.
$ openstack image list
+--------------------------------------+---------------------+--------+
| ID | Name | Status |
+--------------------------------------+---------------------+--------+
| 0850ee38-1bdf-4379-9c69-0cf73e8b7c65 | Arch-Linux-x86_64 | active |
| e98445b6-f14f-488c-a18a-1f66c6de15c7 | CentOS-7-x86_64 | active |
| 7b4b616e-71f3-4419-9777-7aee66fad62c | Cirros-0.4.0-x86_64 | active |
| 98bbd9e6-abbc-45fa-ac95-b91b7b18ba0a | Debian-9-amd64 | active |
| 113b90b6-4e1e-4715-b9ab-456c191a82b3 | Fedora-30-x86_64 | active |
| 06c17e8a-0d4c-428a-89b5-b0eb2489f403 | Ubuntu-16.04-x86_64 | active |
+--------------------------------------+---------------------+--------+
13. Adicione imagens do FreeBSD
Para FreeBSD use os seguintes comandos:
# FreeBSD 13
wget https://download.freebsd.org/ftp/releases/VM-IMAGES/13.2-RELEASE/amd64/Latest/FreeBSD-13.2-RELEASE-amd64.qcow2.xz
unxz FreeBSD-13.2-RELEASE-amd64.qcow2.xz
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file FreeBSD-13.2-RELEASE-amd64.qcow2 \
FreeBSD-13
# FreeBSD 12
wget https://download.freebsd.org/ftp/releases/VM-IMAGES/12.4-RELEASE/amd64/Latest/FreeBSD-12.4-RELEASE-amd64.qcow2.xz
unxz FreeBSD-12.4-RELEASE-amd64.qcow2.xz
openstack image create \
--container-format bare \
--disk-format qcow2 \
--file FreeBSD-12.4-RELEASE-amd64.qcow2 \
FreeBSD-12
Configurando opções de opções de imagem
Agora vamos definir todas as imagens para serem visíveis publicamente e protegê-las contra exclusão acidental.
IMAGE_IDS=`openstack image list | egrep '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' -o`
for i in ${IMAGE_IDS[@]}; do
openstack image set --public $i
openstack image set --protected $i
done
Confirme no Horizon Dashboard acessando Project > Compute > Images. Você deve notar que o sinalizador Protegido está definido como sim para todas as imagens e a Visibilidade também está definida como Pública.
A seguir vem a adição de sabores de sistema operacional: Como adicionar sabores de computador ao Openstack a partir da CLI
Referência:
Documentação OpenStack