OpenNebula / one-deploy

Apache License 2.0
25 stars 12 forks source link

HA front-end nodes as VMs deployment fails when libvirt is pre-installed not from opennebula-node-kvm metapackage #85

Closed mkutouski closed 2 months ago

mkutouski commented 2 months ago

Description The deployment fails in the scenario when HA front-end nodes need to be deployed as VMs if the Libvirt software is pre-installed using apt install -y libvirt-clients libvirt-daemon-system qemu-kvm but not apt install opennebula-node-kvm in Ubuntu. The reason for such behavior seems to be missing oneadmin user on the node(s) where VMs need to be deployed. Whereas it's written in the docs the following:

The bare metal hosts should have Libvirt software pre-installed (for example apt install -y libvirt-clients libvirt-daemon-system qemu-kvm or apt install opennebula-node-kvm in Ubuntu). This step is left to the user.

So either documentation needs to be fix or the corresponding piece of the one-deploy tool.

To Reproduce Create Ubuntu 22.04 host. Install libvirt software:

apt install -y libvirt-clients libvirt-daemon-system qemu-kvm

Prepare inventory/<env>.yml file following documentation.

Execute

make I=inventory/test.yml infra
...

TASK [opennebula.deploy.infra : Start Front-end VMs] ************************************************************************************************************************************************************
task path: /home/user/one-deploy-master/ansible_collections/opennebula/deploy/roles/infra/tasks/main.yml:150
Tuesday 20 August 2024  11:03:13 +0000 (0:00:01.299)       0:00:28.955 ******** 
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: libvirt.libvirtError: internal error: process exited while connecting to monitor: 2024-08-20T11:03:15.105934Z qemu-system-x86_64: -blockdev {"driver":"file","filename":"/var/one-deploy//fn1.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}: Could not open '/var/one-deploy//fn1.iso': Permission denied
failed: [cn1] (item=fn1) => changed=false 
  ansible_loop_var: frontend
  frontend: fn1
  msg: 'internal error: process exited while connecting to monitor: 2024-08-20T11:03:15.105934Z qemu-system-x86_64: -blockdev {"driver":"file","filename":"/var/one-deploy//fn1.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}: Could not open ''/var/one-deploy//fn1.iso'': Permission denied'
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: libvirt.libvirtError: internal error: process exited while connecting to monitor: 2024-08-20T11:03:16.505995Z qemu-system-x86_64: -blockdev {"driver":"file","filename":"/var/one-deploy//fn2.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}: Could not open '/var/one-deploy//fn2.iso': Permission denied
failed: [cn1] (item=fn2) => changed=false 
  ansible_loop_var: frontend
  frontend: fn2
  msg: 'internal error: process exited while connecting to monitor: 2024-08-20T11:03:16.505995Z qemu-system-x86_64: -blockdev {"driver":"file","filename":"/var/one-deploy//fn2.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}: Could not open ''/var/one-deploy//fn2.iso'': Permission denied'
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: libvirt.libvirtError: internal error: process exited while connecting to monitor: 2024-08-20T11:03:17.837848Z qemu-system-x86_64: -blockdev {"driver":"file","filename":"/var/one-deploy//fn3.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}: Could not open '/var/one-deploy//fn3.iso': Permission denied
failed: [cn1] (item=fn3) => changed=false 
  ansible_loop_var: frontend
  frontend: fn3
  msg: 'internal error: process exited while connecting to monitor: 2024-08-20T11:03:17.837848Z qemu-system-x86_64: -blockdev {"driver":"file","filename":"/var/one-deploy//fn3.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}: Could not open ''/var/one-deploy//fn3.iso'': Permission denied'

NO MORE HOSTS LEFT **********************************************************************************************************************************************************************************************

ll /var/|grep -i one-deploy
drwx------  2 9869   9869 4096 Aug 20 12:21 one-deploy/

ll /var/one-deploy/
total 1695444
drwx------  2         9869 9869      4096 Aug 20 12:21 ./
drwxr-xr-x 13 root         root      4096 Aug 20 12:21 ../
-r--------  1 libvirt-qemu kvm     372736 Aug 20 12:21 fn1.iso
-rw-------  1         9869 9869 433783104 Aug 20 12:21 fn1.qcow2
-r--------  1 libvirt-qemu kvm     372736 Aug 20 12:21 fn2.iso
-rw-------  1         9869 9869 433783104 Aug 20 12:21 fn2.qcow2
-r--------  1 libvirt-qemu kvm     372736 Aug 20 12:21 fn3.iso
-rw-------  1         9869 9869 433783104 Aug 20 12:21 fn3.qcow2
-rw-r--r--  1 root         root 433744896 Aug 20 12:21 ubuntu2204-6.8.1-1-20240131.qcow2

Expected behavior HA FN VMs should be created on the specified host(s).

Details

Progress Status