Pesquisa de site

Instale oVirt Engine no CentOS Stream 9/Rocky Linux 9


oVirt é uma solução de gerenciamento de virtualização de código aberto e gratuita cujo desenvolvimento é apoiado pela Red Hat. oVirt foi desenvolvido para gerenciamento de ambientes de virtualização KVM (máquina virtual baseada em kernel). Ele vem com recursos que permitem gerenciar armazenamento, rede e máquinas virtuais, tudo isso a partir de uma interface administrativa centralizada baseada na web.

Os principais componentes do projeto oVirt são o oVirt Engine e o oVirt Node. oVirt Engine é um componente que fornece uma interface gráfica de usuário e uma API REST com a finalidade de gerenciar todos os recursos do ambiente virtualizado. Você pode instalar o oVirt Engine em uma máquina física ou virtual executando Enterprise Linux.

Este artigo fornecerá orientação sobre a instalação manual do oVirt Engine independente em um sistema CentOS Stream 9/Rocky Linux 9 Linux. O SO deve ser instalado antes de executar o script chamado engine-setup que realizará a configuração do oVirt Engine. Depois de configurado, você pode adicionar hosts de computação e configurar o armazenamento para executar máquinas virtuais.

Aqui estão os requisitos de hardware para instalar o oVirt Engine em uma VM autônoma ou em um servidor dedicado.

Resource Minimum Recommended
CPU A dual core x86_64 CPU. A quad core x86_64 CPU or multiple dual core x86_64 CPUs.
Memory 4 GB of available system RAM if Data Warehouse is not installed and if memory is not being consumed by existing processes. 16 GB of system RAM.
Hard Disk 25 GB of locally accessible, writable disk space. 50 GB of locally accessible, writable disk space.You can use the RHV Engine History Database Size Calculator to calculate the appropriate disk space for the Engine history database size.
Network Interface 1 Network Interface Card (NIC) with bandwidth of at least 1 Gbps. 1 Network Interface Card (NIC) with bandwidth of at least 1 Gbps.

1. Obtenha atualizações e defina o NTP

Faça login em sua instância do servidor Linux.

ssh root@ServerIP or username@ServerIP

Execute os comandos abaixo para garantir que todos os pacotes do sistema estejam atualizados.

sudo dnf -y update

Quando as atualizações do kernel são aplicadas, é necessária uma reinicialização.

sudo reboot

Alterar o fuso horário usado atualmente

sudo timedatectl set-timezone your_time_zone

Para listar todos os fusos horários disponíveis, digite o seguinte em um prompt do shell:

timedatectl list-timezones

Para alterar o fuso horário para África/Nairobi, digitarei:

sudo timedatectl set-timezone Africa/Nairobi

Ative também a sincronização automática do relógio do sistema com um servidor remoto.

sudo timedatectl set-ntp yes

Instale a sincronização de horário do Chrony.

sudo dnf -y install chrony
sudo systemctl enable --now chronyd

Sincronize a hora manualmente.

sudo chronyc sources

Confirme o valor da hora local do seu sistema.

$ timedatectl
               Local time: Thu 2024-02-08 10:36:19 EAT
           Universal time: Thu 2024-02-08 07:36:19 UTC
                 RTC time: Thu 2024-02-08 07:36:19
                Time zone: Africa/Nairobi (EAT, +0300)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

2. Adicionar repositórios RPM do oVirt Engine

Vamos habilitar os repositórios corretos que contêm pacotes oVirt Engine.

sudo dnf install -y centos-release-ovirt45

Resultado esperado da instalação:

...
Dependencies resolved.
======================================================================================================================================================================================================
....

Transaction Summary
======================================================================================================================================================================================================
Install  12 Packages

Total download size: 105 k
Installed size: 37 k
Downloading Packages:

Para Rocky Linux 9, atualize o arquivo de configurações do repositório para substituir $stream por 9-stream. Isso nos permitirá usar o repositório CentOS Stream 9 no sistema Rocky Linux 9.

for repo in oVirt-4.5 Storage-common OpenStack-yoga Messaging-rabbitmq NFV-OpenvSwitch Ceph-Pacific Gluster-10 OpsTools; do
 sudo sed -i 's/$stream/9-stream/' /etc/yum.repos.d/CentOS-$repo.repo
done

Liste os repositórios atualmente habilitados no sistema.

$ sudo dnf repolist
repo id                                                                                repo name
appstream                                                                              CentOS Stream 9 - AppStream
baseos                                                                                 CentOS Stream 9 - BaseOS
centos-ceph-pacific                                                                    CentOS-9-stream - Ceph Pacific
centos-gluster10                                                                       CentOS-9-stream - Gluster 10
centos-nfv-openvswitch                                                                 CentOS Stream 9 - NFV OpenvSwitch
centos-openstack-yoga                                                                  CentOS-9 - OpenStack yoga
centos-opstools                                                                        CentOS Stream 9 - OpsTools - collectd
centos-ovirt45                                                                         CentOS Stream 9 - oVirt 4.5
centos-rabbitmq-38                                                                     CentOS-9 - RabbitMQ 38
crb                                                                                    CentOS Stream 9 - CRB
extras-common                                                                          CentOS Stream 9 - Extras packages
ovirt-45-upstream                                                                      oVirt upstream for CentOS Stream 9 - oVirt 4.5
resilientstorage                                                                       CentOS Stream 9 - ResilientStorage

Atualize os metadados do cache.

sudo dnf makecache -y

3. Instalando o Motor oVirt

Defina o nome de host correto para a máquina.

sudo hostnamectl set-hostname ovirt.mylab.io

Adicione o IP e seu nome de host ao arquivo /etc/hosts.

$ sudo vim /etc/hosts
ovirt.mylab.io 192.168.1.8

Agora que configuramos os repositórios necessários, vamos instalar o pacote e as dependências do oVirt Engine.

sudo dnf install ovirt-engine

Aceite a instalação quando solicitado a continuar.

....
Transaction Summary
======================================================================================================================================================================================================
Install  687 Packages

Total download size: 845 M
Installed size: 2.6 G
Is this ok [y/N]: y

Importe todas as chaves GPG conforme orientado durante a instalação.

...
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                  28 MB/s | 845 MB     00:30
CentOS Stream 9 - NFV OpenvSwitch                                                                                                                                     1.0 MB/s | 1.0 kB     00:00
Importing GPG key 0x9D2A76A7:
 Userid     : "CentOS NFV SIG (https://wiki.centos.org/SpecialInterestGroup/NFV) <[email >"
 Fingerprint: 3515 4228 1749 01BE FA8E 69A6 2146 5E28 9D2A 76A7
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-NFV
Is this ok [y/N]: y
Key imported successfully
CentOS-9 - OpenStack yoga                                                                                                                                             1.0 MB/s | 1.0 kB     00:00
Importing GPG key 0x764429E6:
 Userid     : "CentOS Cloud SIG (http://wiki.centos.org/SpecialInterestGroup/Cloud) <[email >"
 Fingerprint: 736A F511 6D9C 40E2 AF6B 074B F9B9 FEE7 7644 29E6
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
Is this ok [y/N]: y
Key imported successfully
CentOS Stream 9 - OpsTools - collectd                                                                                                                                 622 kB/s | 1.0 kB     00:00
Importing GPG key 0x51BC2A13:
 Userid     : "CentOS OpsTools SIG (https://wiki.centos.org/SpecialInterestGroup/OpsTools) <[email >"
 Fingerprint: 7872 8176 9AD7 3878 85EE A649 4FD9 5327 51BC 2A13
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-OpsTools
Is this ok [y/N]: y
Key imported successfully
CentOS Stream 9 - oVirt 4.5                                                                                                                                           1.0 MB/s | 1.0 kB     00:00
Importing GPG key 0x61E8806C:
 Userid     : "CentOS Virtualization SIG (http://wiki.centos.org/SpecialInterestGroup/Virtualization) <[email >"
 Fingerprint: A7C8 E761 309D 2F1C 92C5 0B62 7AEB BE82 61E8 806C
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization
Is this ok [y/N]: y
Key imported successfully
oVirt upstream for CentOS Stream 9 - oVirt 4.5                                                                                                                        1.2 MB/s | 1.6 kB     00:00
Importing GPG key 0x24901D0C:
 Userid     : "oVirt <[email >"
 Fingerprint: 3C98 E81D B93D EA6D 54DE 690E 44E4 75CB 2490 1D0C
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-oVirt-4.5
Is this ok [y/N]: y

Confirme a instalação bem-sucedida consultando os detalhes do pacote usando o comando rpm.

$ rpm -qi ovirt-engine
Name        : ovirt-engine
Version     : 4.5.5
Release     : 1.el9
Architecture: noarch
Install Date: Thu 08 Feb 2024 09:49:46 AM EAT
Group       : Virtualization/Management
Size        : 39491334
License     : ASL 2.0
Signature   : RSA/SHA256, Fri 01 Dec 2023 12:12:24 PM EAT, Key ID 7aebbe8261e8806c
Source RPM  : ovirt-engine-4.5.5-1.el9.src.rpm
Build Date  : Fri 01 Dec 2023 11:01:32 AM EAT
Build Host  : x86-03.mbox.rdu2.centos.org
Packager    : CBS <[email >
Vendor      : CentOS Community Build Service
URL         : http://www.ovirt.org
...

4. Configurar o mecanismo oVirt

Para configurar o oVirt Engine, precisamos executar o comando engine-setup:

sudo engine-setup

A inicialização começa imediatamente.

[ INFO  ] Stage: Initializing
[ INFO  ] Stage: Environment setup
          Configuration files: /etc/ovirt-engine-setup.conf.d/10-packaging-jboss.conf, /etc/ovirt-engine-setup.conf.d/10-packaging.conf
          Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20240208065045-1nrdhj.log
          Version: otopi-1.10.4 (otopi-1.10.4-1.el9)
[ INFO  ] Stage: Environment packages setup
[ INFO  ] Stage: Programs detection
[ INFO  ] Stage: Environment setup (late)
[ INFO  ] Stage: Environment customization
...

Configure as principais opções necessárias para implantar o oVirt Engine.

          --== PRODUCT OPTIONS ==--      
          Configure Cinderlib integration (Currently in tech preview) (Yes, No) [No]:Yes
          Configure Engine on this host (Yes, No) [Yes]:Yes

          Configuring ovirt-provider-ovn also sets the Default cluster's default network provider to ovirt-provider-ovn.
          Non-Default clusters may be configured with an OVN after installation.
          Configure ovirt-provider-ovn (Yes, No) [Yes]:<Enter>
          Configure WebSocket Proxy on this host (Yes, No) [Yes]:<Enter>

          * Please note * : Data Warehouse is required for the engine.
          If you choose to not configure it on this host, you have to configure
          it on a remote host, and then configure the engine on this host so
          that it can access the database of the remote Data Warehouse host.
          Configure Data Warehouse on this host (Yes, No) [Yes]:<Enter>

          * Please note * : Keycloak is now deprecating AAA/JDBC authentication module.
          It is highly recommended to install Keycloak based authentication.
          Configure Keycloak on this host (Yes, No) [Yes]:<Enter>
          Configure VM Console Proxy on this host (Yes, No) [Yes]:<Enter>
          Configure Grafana on this host (Yes, No) [Yes]:<Enter>

Ele verificará se alguma atualização está disponível.

          --== PACKAGES ==--

[ INFO  ] Checking for product updates...
[ INFO  ] No product updates found

Em Configurações de rede, confirme o nome do host ou defina um novo.

--== NETWORK CONFIGURATION ==--

          Host fully qualified DNS name of this server [ovirt.mylab.io]: ovirt.mylab.io

A personalização do banco de dados tem muitas opções. Trabalhe com o que se adequa ao seu uso. Aqui iremos com todos os valores padrão.

 --== DATABASE CONFIGURATION ==--

          Where is the DWH database located? (Local, Remote) [Local]:<Enter>

          Setup can configure the local postgresql server automatically for the DWH to run. This may conflict with existing applications.
          Would you like Setup to automatically configure postgresql and create DWH database, or prefer to perform that manually? (Automatic, Manual) [Automatic]:<Enter>

          Where is the Keycloak database located? (Local, Remote) [Local]:<Enter>

          Setup can configure the local postgresql server automatically for the Keycloak to run. This may conflict with existing applications.
          Would you like Setup to automatically configure postgresql and create Keycloak database, or prefer to perform that manually? (Automatic, Manual) [Automatic]:<Enter>
          Where is the ovirt cinderlib database located? (Local, Remote) [Local]:<Enter>
          Setup can configure the local postgresql server automatically for the CinderLib to run. This may conflict with existing applications.
          Would you like Setup to automatically configure postgresql and create CinderLib database, or prefer to perform that manually? (Automatic, Manual) [Automatic]:<Enter>
          Where is the Engine database located? (Local, Remote) [Local]:<Enter>

          Setup can configure the local postgresql server automatically for the engine to run. This may conflict with existing applications.
          Would you like Setup to automatically configure postgresql and create Engine database, or prefer to perform that manually? (Automatic, Manual) [Automatic]:<Enter>

Defina a senha do usuário administrador do mecanismo.

--== OVIRT ENGINE CONFIGURATION ==--

          Engine admin password:<Set-New-Password>
          Confirm engine admin password:<Confirm-New-Password>
          Application mode (Virt, Gluster, Both) [Both]:<Enter>
          Use Engine admin password as initial keycloak admin password (Yes, No) [Yes]:<Enter>

Complete com valores de configuração para as opções restantes.

 --== STORAGE CONFIGURATION ==--

          Default SAN wipe after delete (Yes, No) [No]:<Enter>
  --== PKI CONFIGURATION ==--

          Organization name for certificate [mylab.io]:<Enter>

 --== APACHE CONFIGURATION ==--

          Setup can configure the default page of the web server to present the application home page. This may conflict with existing applications.
          Do you wish to set the application as the default page of the web server? (Yes, No) [Yes]:<Enter>

 --== SYSTEM CONFIGURATION ==--


          --== MISC CONFIGURATION ==--

          Please choose Data Warehouse sampling scale:
          (1) Basic
          (2) Full
          (1, 2)[1]:<Enter>
          Use Engine admin password as initial Grafana admin password (Yes, No) [Yes]:<Enter>

          --== END OF CONFIGURATION ==--

No final você obterá uma saída com todas as configurações definidas.

 --== CONFIGURATION PREVIEW ==--

          Application mode                        : both
          Default SAN wipe after delete           : False
          Host FQDN                               : ovirt.mylab.io
          Update Firewall                         : False
          CinderLib database host                 : localhost
          CinderLib database port                 : 5432
          CinderLib database secured connection   : False
          CinderLib database host name validation : False
          CinderLib database name                 : ovirt_cinderlib
          CinderLib database user name            : ovirt_cinderlib
          Set up Cinderlib integration            : True
          Configure local CinderLib database      : True
          Configure local Engine database         : True
          Set application as default page         : True
          Configure Apache SSL                    : True
          Keycloak installation                   : True
          Engine database host                    : localhost
          Engine database port                    : 5432
          Engine database secured connection      : False
          Engine database host name validation    : False
          Engine database name                    : engine
          Engine database user name               : engine
          Engine installation                     : True
          PKI organization                        : mylab.io
          Set up ovirt-provider-ovn               : True
          DWH installation                        : True
          DWH database host                       : localhost
          DWH database port                       : 5432
          DWH database secured connection         : False
          DWH database host name validation       : False
          DWH database name                       : ovirt_engine_history
          Configure local DWH database            : True
          Grafana integration                     : True
          Grafana database user name              : ovirt_engine_history_grafana
          Keycloak database host                  : localhost
          Keycloak database port                  : 5432
          Keycloak database secured connection    : False
          Keycloak database host name validation  : False
          Keycloak database name                  : ovirt_engine_keycloak
          Keycloak database user name             : ovirt_engine_keycloak
          Configure local Keycloak database       : True
          Configure VMConsole Proxy               : True
          Configure WebSocket Proxy               : True

Basta clicar em para iniciar as configurações do oVirt Engine.

Please confirm installation settings (OK, Cancel) [OK]:

Aguarde a conclusão do processo de configuração

[ INFO  ] Stage: Transaction setup
[ INFO  ] Stopping engine service
[ INFO  ] Stopping ovirt-fence-kdump-listener service
[ INFO  ] Stopping dwh service
[ INFO  ] Stopping vmconsole-proxy service
[ INFO  ] Stopping websocket-proxy service
[ INFO  ] Stage: Misc configuration (early)
[ INFO  ] Stage: Package installation
[ INFO  ] Stage: Misc configuration
[ INFO  ] Initializing PostgreSQL
[ INFO  ] Creating PostgreSQL 'ovirt_cinderlib' database
[ INFO  ] Configuring PostgreSQL
[ INFO  ] Upgrading CA
[ INFO  ] Creating PostgreSQL 'engine' database
[ INFO  ] Configuring PostgreSQL
[ INFO  ] Creating PostgreSQL 'ovirt_engine_history' database
[ INFO  ] Configuring PostgreSQL
[ INFO  ] Creating PostgreSQL 'ovirt_engine_keycloak' database
[ INFO  ] Configuring PostgreSQL
[ INFO  ] Creating CA: /etc/pki/ovirt-engine/ca.pem
[ INFO  ] Creating CA: /etc/pki/ovirt-engine/qemu-ca.pem
[ INFO  ] Creating a user for Grafana
[ INFO  ] Allowing ovirt_engine_history_grafana to read data on ovirt_engine_history
[ INFO  ] Setting up ovirt-vmconsole proxy helper PKI artifacts
[ INFO  ] Setting up ovirt-vmconsole SSH PKI artifacts
[ INFO  ] Configuring WebSocket Proxy
[ INFO  ] Creating/refreshing Engine database schema

O relatório de resumo final da instalação bem-sucedida é impresso na tela.


          --== END OF SUMMARY ==--

[ INFO  ] Restarting httpd
[ INFO  ] Start with setting up Keycloak for Ovirt Engine
[ INFO  ] Done with setting up Keycloak for Ovirt Engine
[ INFO  ] Stage: Clean up
          Log file is located at /var/log/ovirt-engine/setup/ovirt-engine-setup-20240208065045-1nrdhj.log
[ INFO  ] Generating answer file '/var/lib/ovirt-engine/setup/answers/20240208070615-setup.conf'
[ INFO  ] Stage: Pre-termination
[ INFO  ] Stage: Termination
[ INFO  ] Execution of setup completed successfully

A configuração do mecanismo também exibirá detalhes sobre como acessar seu ambiente.

5. Configurando o firewalld

Você pode instalar e ativar o firewalld para manter seus serviços seguros.

sudo dnf -y install firewalld
sudo systemctl enable --now firewalld

Copie os arquivos xml com as portas necessárias para o oVirt Engine definidas.

sudo cp /etc/ovirt-engine/firewalld/* /etc/firewalld/services

Recarregue as regras do firewalld.

sudo firewall-cmd --reload

Permitir outros serviços oVirt no firewalld.

for service in ovn-central-firewall-service ovirt-provider-ovn ovirt-http \
  ovirt-https ovirt-vmconsole-proxy  ovirt-websocket-proxy \
  ovirt-fence-kdump-listener ovirt-imageio-proxy ovirt-postgres; do
sudo firewall-cmd --permanent --add-service $service;
done

Recarregue e confirme se eles foram adicionados à lista de permissões.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

6. Acesse a interface da web do oVirt Engine

O valor FQDN usado na configuração do nome do host deve ter um registro A no seu servidor DNS. Como alternativa, crie um registro no arquivo /etc/hosts da estação de trabalho local.

IP FQDN

Para acessar o oVirt Engine no navegador da web, use https://manager-fqdn/ovirt-engine. Ignore o aviso de risco do certificado SSL.

Você pode obter o certificado da autoridade de certificação no URL abaixo. Substituindo pelo FQDN fornecido durante a instalação.

http://<manager-fqdn>/ovirt-engine/services/pki-resource?resource=ca-certificate&format=X509-PEM-CA

Consulte Configurando a segurança do certificado do oVirt/RHEV Manager no navegador

Para acessar o painel de administração, use “Portal de Administração ” em “Portais

Faça login com a conta de usuário administrador criada.

  • Nome de usuário: admin@ovirt
  • Senha: Use a senha que você especificou durante a instalação.

Você pode adicionar nomes de host ou endereços IP alternativos para acessar o Portal de Administração.

$ sudo vim /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf
SSO_ALTERNATE_ENGINE_FQDNS="_alias1.example.com alias2.example.com_"

A lista de nomes de host alternativos precisa ser separada por espaços. Você também pode adicionar o endereço IP do mecanismo à lista, mas não é recomendado usar endereços IP em vez de nomes de host resolvíveis por DNS.

Para adicionar o nó de computação, use:

  • Instale o oVirt Compute Node no CentOS Stream 9/Rocky 9

7. Acesse o painel Grafana

O painel web do Grafana está disponível em https://manager-fqdn/ovirt-engine-grafana/

Faça login com o usuário admin e a senha que você especificou durante a instalação.

Próximos artigos para ler sobre gerenciamento oVirt:

  • Adicione dados NFS, ISO e domínio de armazenamento de exportação ao oVirt/RHEV
  • Criando redes lógicas de VM e armazenamento em oVirt/RHEV
  • Configurar a autenticação de usuário oVirt/RHEV usando FreeIPA LDAP
  • Como criar data center e cluster em oVirt/RHEV
  • Carregar e usar imagens ISO no domínio de armazenamento oVirt/RHEV
  • Como adicionar host de computação à virtualização oVirt
  • Como provisionar VMs em oVirt/RHEV com Terraform

Artigos relacionados: