Furthermore I tried to check this in VMWare Workstation player 16 First of all as I'd expect systemd-detect-virt identified vmware already. $ systemd-detect-virt vmware
The code affected by this issue here is in "ovf_vmware_guest_customization". That is only used in dscheck_OVF. Therefore to streamline the run reduce config to just detect OVF in ds-identify. $ echo "datasource_list: [NoCloud, OVF]" < sudo tee /etc/cloud/cloud.cfg.d/99_test.cfg Running ds-identify in verbose more to check behavior. As expected I see it pass the steps before and reach ovf_vmware_guest_customization. And indeed it fails to detect the pluging and does an early exit. Here with a bit of additional debug inside of ovf_vmware_guest_customization: $ sudo DEBUG_LEVEL=5 DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force [up 2345.15s] ds-identify --force policy loaded: mode=search report=false found=all maybe=all notfound=disabled /etc/cloud/cloud.cfg.d/90_dpkg.cfg set datasource_list: [NoCloud, OVF] DMI_PRODUCT_NAME=VMware Virtual Platform DMI_SYS_VENDOR=VMware, Inc. DMI_PRODUCT_SERIAL=VMware-56 4d 5c 48 27 3b 66 c7-18 31 7d 99 e7 30 40 7e DMI_PRODUCT_UUID=485c4d56-3b27-c766-1831-7d99e730407e PID_1_PRODUCT_NAME=unavailable DMI_CHASSIS_ASSET_TAG=No Asset Tag FS_LABELS= ISO9660_DEVS= KERNEL_CMDLINE=BOOT_IMAGE=/boot/vmlinuz-5.11.0-20-generic root=UUID=e6b98230-678e-4963-88a1-673f9e943acd ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet VIRT=vmware UNAME_KERNEL_NAME=Linux UNAME_KERNEL_RELEASE=5.11.0-20-generic UNAME_KERNEL_VERSION=#21+21.10.1-Ubuntu SMP Wed Jun 9 15:08:14 UTC 2021 UNAME_MACHINE=x86_64 UNAME_NODENAME=ubuntu UNAME_OPERATING_SYSTEM=GNU/Linux DSNAME= DSLIST=NoCloud OVF MODE=search ON_FOUND=all ON_MAYBE=all ON_NOTFOUND=disabled pid=54738 ppid=54737 is_container=false Checking for datasource 'NoCloud' via 'dscheck_NoCloud' check for 'NoCloud' returned not-found[1] Checking for datasource 'OVF' via 'dscheck_OVF' DEBUG: dscheck_OVF: Check seed DEBUG: dscheck_OVF: DI_VIRT DEBUG: dscheck_OVF: is_azure_chassis DEBUG: dscheck_OVF: ovf_vmware_transport_guestinfo Running on vmware but rpctool query returned 1: No value found DEBUG: dscheck_OVF: has_ovf_cdrom DEBUG: dscheck_OVF: ovf_vmware_guest_customization DEBUG: ovf_vmware_guest_customization: start check DEBUG: scan plugin check for 'OVF' returned not-found[1] found= maybe= No ds found [mode=search, notfound=disabled]. Disabled cloud-init [1] [up 2345.23s] returning 1 With the fix (from PPA https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/4673) in place it finds the plugin as expected. We want to also force vmware customization itself for this test which isn't the default. $ echo "disable_vmware_customization: false" | sudo tee -a /etc/cloud/cloud.cfg.d/99_test.cfg And then the result is in /etc/cloud-init/cloud.cfg We will see the check say: ... Checking for datasource 'OVF' via 'dscheck_OVF' Running on vmware but rpctool query returned 1: No value found /etc/cloud/cloud.cfg.d/99_test.cfg set disable_vmware_customization to false check for 'OVF' returned found found=OVF maybe= Found single datasource: OVF [up 3357.93s] returning 0 And the result is: $ cat /run/cloud-init/cloud.cfg datasource_list: [ OVF, None ] In comparison the bad case has: ... Checking for datasource 'OVF' via 'dscheck_OVF' Running on vmware but rpctool query returned 1: No value found check for 'OVF' returned not-found[1] found= maybe= No ds found [mode=search, notfound=disabled]. Disabled cloud-init [1] [up 3554.80s] returning 1 And the result is: $ cat /run/cloud-init/cloud.cfg di_report: datasource_list: [ ] # reporting not found result. notfound=disabled. That is enough to construct a testcase for the SRU template ... ** Description changed: [Impact] - * The package correctly fixed a non multiarch path, but we missed - that some depending SW might have mad assumptions on the old paths. - One such SW is cloud-init which in certain cases now fails to detect - and configure vmware correctly. + * The package correctly fixed a non multiarch path, but we missed + that some depending SW might have mad assumptions on the old paths. + One such SW is cloud-init which in certain cases now fails to detect + and configure vmware correctly. - * In the long run (next Debian and 22.04) we will keep only the new - paths. But for 21.10 time is too short and even more so for the SRUs - that we regularly do back to at least the last LTS. - There we want to mitigate the impact by adding a compat link on the - old path. + * In the long run (next Debian and 22.04) we will keep only the new + paths. But for 21.10 time is too short and even more so for the SRUs + that we regularly do back to at least the last LTS. + There we want to mitigate the impact by adding a compat link on the + old path. [Test Plan] - * TBD discussion ongoing + * We need to configure cloud-init to check for VMware IVMF data and we + will see that without the fix it is failing to be detected. + + * Set up Ubuntu in VMWare if you do not ahve any ESXi then VMWare + Workstation player 16 for Ubuntu as trial from + https://www.vmware.com/products/workstation-player/workstation-player- + evaluation.html is enough. + + # Reduce the ouput a bit for readability and make it not skip vmware + $ echo "datasource_list: [NoCloud, OVF]" < sudo tee /etc/cloud/cloud.cfg.d/99_test.cfg + $ echo "disable_vmware_customization: false" | sudo tee -a /etc/cloud/cloud.cfg.d/99_test.cfg + # Run ds-dentify with debug on + $ sudo DEBUG_LEVEL=5 DI_LOG=stderr /usr/lib/cloud-init/ds-identify --force + # Check the result + $ cat /run/cloud-init/cloud.cfg + + + Bad case example: + ... + Checking for datasource 'OVF' via 'dscheck_OVF' + Running on vmware but rpctool query returned 1: No value found + check for 'OVF' returned not-found[1] + found= maybe= + No ds found [mode=search, notfound=disabled]. Disabled cloud-init [1] + [up 3554.80s] returning 1 + + And the result is: + $ cat /run/cloud-init/cloud.cfg + di_report: + datasource_list: [ ] + # reporting not found result. notfound=disabled. + + + Good case example: + ... + Checking for datasource 'OVF' via 'dscheck_OVF' + Running on vmware but rpctool query returned 1: No value found + /etc/cloud/cloud.cfg.d/99_test.cfg set disable_vmware_customization to false + check for 'OVF' returned found + found=OVF maybe= + Found single datasource: OVF + [up 3357.93s] returning 0 + + And the result is: + $ cat /run/cloud-init/cloud.cfg + datasource_list: [ OVF, None ] + + Note: VMware who spotted this will do a verification as well on this + case. [Where problems could occur] - * Since we do not remove, but add a link (that exactly matches the - formerly used path) I'm not too concerned. The issue I can think of - would be e.g. security policies that prevent .so files to load through - symlinks or anything like that. But in that case still the upload - would not further degrade things, it would just not fix it. - Test wise this is all about guest customizations and VMware plugin and - VMware as usual will do checks for that when this is in verification. + * Since we do not remove, but add a link (that exactly matches the + formerly used path) I'm not too concerned. The issue I can think of + would be e.g. security policies that prevent .so files to load through + symlinks or anything like that. But in that case still the upload + would not further degrade things, it would just not fix it. + Test wise this is all about guest customizations and VMware plugin and + VMware as usual will do checks for that when this is in verification. [Other Info] - - * Down the road we still want to drop that path, it is only added now to - temporarily mitigate such issues. Therefore we do NOT want to have that - in 22.04 for a long time, and will most likely drop it there soon to - spot further issues with it. - * For the same reason I'm also not uploading it to Debian via - https://salsa.debian.org/vmware-packaging-team/pkg-open-vm-tools/-/merge_requests/11 + * Down the road we still want to drop that path, it is only added now to + temporarily mitigate such issues. Therefore we do NOT want to have that + in 22.04 for a long time, and will most likely drop it there soon to + spot further issues with it. + * For the same reason I'm also not uploading it to Debian via + https://salsa.debian.org/vmware-packaging-team/pkg-open-vm-tools/-/merge_requests/11 ------ Problem: the path of plugin libdeployPkgPlugin.so of open-vm-tools is changed and guest customization will fail for ubuntu 21.10 beta image Description: Ubuntu 21.10 have new open-vm-tools 11.3.0. with this new open-vm-tools, the plugin libdeployPkgPlugin.so is put to directory /usr/lib/x86_64-linux-gnu/open-vm-tools/plugins/vmsvc/. In previous open-vm-tools version (such as 11.2.5), the the plugin libdeployPkgPlugin.so is put to directory /usr/lib/open-vm- tools/plugins/vmsvc/ The path change of plugin libdeployPkgPlugin.so will cause the guest customization failure. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1944946 Title: Path of open-vm-tools libdeployPkgPlugin.so is now multi-arch compliant breaking cloud-init To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1944946/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs