Pesquisa de site

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

Artigos relacionados: