Hide Forgot
Description of problem: packstack/puppet/modules/packstack/manifests/nova/compute/libvirt.pp: file_line { 'libvirt-guests': path => '/etc/sysconfig/libvirt-guests', line => 'ON_BOOT=ignore', match => '^[\s#]*ON_BOOT=.*', require => Class['::nova::compute::libvirt'], } packstack/puppet tries to modify a not existing file. The file belongs to the libvirt-client package, but it is not installed. It is possible on rhel 7.3 something else pulls it, but now it is not pulled and the installation fails. Version-Release number of selected component (if applicable): puppet-xinetd-2.0.1-0.20170330143624.ee8b4d8.el7ost.noarch puppet-mysql-3.11.1-0.20170509103830.4fc16bc.el7ost.noarch puppet-manila-11.1.0-0.20170424155949.2876e50.el7ost.noarch puppet-ceilometer-11.1.0-0.20170510221322.3d45585.el7ost.noarch puppet-mongodb-0.17.1-0.20170429000058.98b137a.el7ost.noarch puppet-concat-4.0.1-0.20170425132039.3d1a90a.el7ost.noarch puppet-vswitch-7.1.0-0.20170511171651.74bac67.el7ost.noarch puppet-cinder-11.1.0-0.20170508094535.02e29ba.el7ost.noarch puppet-panko-11.1.0-0.20170508094431.020a8e3.el7ost.noarch puppet-certmonger-1.2.0-0.20170322174804.bca6294.el7.noarch puppet-4.8.2-1.el7ost.noarch puppet-apache-1.11.1-0.20170510211042.8aed782.el7ost.noarch puppet-rsync-0.4.1-0.20170511190057.0aa5ada.el7ost.noarch puppet-staging-1.0.5-0.20170309132835.b466d93.el7.noarch puppet-oslo-11.1.0-0.20170428232738.df41e1e.el7ost.noarch puppet-nova-11.1.0-0.20170504072502.2125355.el7ost.noarch puppet-trove-11.1.0-0.20170510091014.264da12.el7ost.noarch puppet-swift-11.1.0-0.20170427122157.1a22b51.el7ost.noarch puppet-tempest-11.1.0-0.20170425233500.a13bad7.el7ost.noarch puppet-nssdb-1.0.2-0.20170309140103.2ed2a2d.el7.noarch puppet-openstack_extras-11.1.0-0.20170424160748.6ae42d2.el7ost.noarch puppet-stdlib-4.16.1-0.20170427151808.f15cc31.el7ost.noarch puppet-sysctl-0.0.11-0.20170309165336.65ffe83.el7.noarch puppet-firewall-1.8.3-0.20170510185409.410f956.el7ost.noarch puppet-rabbitmq-5.6.1-0.20170419162840.2000ce7.el7ost.noarch puppet-keystone-11.1.0-0.20170424155543.5401a0f.el7ost.noarch puppet-neutron-11.1.0-0.20170504172305.b4dcaa0.el7ost.noarch puppet-heat-11.1.0-0.20170424155048.7b77423.el7ost.noarch puppet-sahara-11.1.0-0.20170508094227.9f03acf.el7ost.noarch puppet-horizon-11.1.0-0.20170424155251.ca72a7b.el7ost.noarch puppet-redis-3.0.1-0.20170511185443.481a487.el7ost.noarch puppet-remote-10.0.0-0.20170510134025.fa647f6.el7ost.noarch puppet-inifile-1.6.1-0.20170331171230.1166cfa.el7ost.noarch puppet-memcached-3.0.3-0.20170510133534.c2a0b54.el7ost.noarch puppet-glance-11.1.0-0.20170508094755.b01ba77.el7ost.noarch puppet-gnocchi-11.1.0-0.20170424155000.f8dea50.el7ost.noarch puppet-ssh-3.0.1-0.20170309134612.ba2fb16.el7.noarch openstack-packstack-puppet-10.1.0-0.20170510133419.f5716c9.el7ost.noarch puppet-vcsrepo-1.5.1-0.20170510225929.42312fc.el7ost.noarch puppet-openstacklib-11.1.0-0.20170424160949.16d87ac.el7ost.noarch puppet-ironic-11.1.0-0.20170508200711.6071888.el7ost.noarch puppet-aodh-11.1.0-0.20170424153756.ef76499.el7ost.noarch puppet-corosync-5.0.1-0.20170409143803.527cda5.el7ost.noarch openstack-packstack-10.1.0-0.20170510133419.f5716c9.el7ost.noarch libvirt-daemon-driver-storage-disk-3.2.0-4.el7.x86_64 libvirt-daemon-driver-interface-3.2.0-4.el7.x86_64 libvirt-daemon-driver-secret-3.2.0-4.el7.x86_64 libvirt-libs-3.2.0-4.el7.x86_64 libvirt-daemon-driver-nwfilter-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-scsi-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-3.2.0-4.el7.x86_64 libvirt-client-3.2.0-4.el7.x86_64 libvirt-python-3.2.0-2.el7.x86_64 libvirt-daemon-config-nwfilter-3.2.0-4.el7.x86_64 libvirt-daemon-driver-network-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-rbd-3.2.0-4.el7.x86_64 libvirt-daemon-driver-qemu-3.2.0-4.el7.x86_64 libvirt-daemon-driver-nodedev-3.2.0-4.el7.x86_64 libvirt-daemon-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-core-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-mpath-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-iscsi-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-gluster-3.2.0-4.el7.x86_64 libvirt-daemon-driver-storage-logical-3.2.0-4.el7.x86_64 libvirt-daemon-kvm-3.2.0-4.el7.x86_64 How reproducible: always Steps to Reproduce: 1. have RHEL-7.4 installed without /etc/sysconfig/libvirt-guests (even without libvirt-client) 2. try to install openstack 11 or 12 vie `packstack --allinone` 3. Actual results: Applying 192.168.9.153_controller.pp 192.168.9.153_controller.pp: [ DONE ] Applying 192.168.9.153_network.pp 192.168.9.153_network.pp: [ DONE ] Applying 192.168.9.153_compute.pp 192.168.9.153_compute.pp: [ ERROR ] Applying Puppet manifests [ ERROR ] ERROR : Error appeared during Puppet run: 192.168.9.153_compute.pp Error: /Stage[main]/Packstack::Nova::Compute::Libvirt/File_line[libvirt-guests]: Could not evaluate: No such file or directory - /etc/sysconfig/libvirt-guests You will find full trace in log /var/tmp/packstack/20170519-093302-UHP2V8/manifests/192.168.9.153_compute.pp.log Please check log file /var/tmp/packstack/20170519-093302-UHP2V8/openstack-setup.log for more information Expected results: Installation completes, packstack should request explicitly the presence of /etc/sysconfig/libvirt-guests presence or the libvirt-client package. Additional info: WORKAROUND: sudo yum install -y libvirt-client || sudo yum install -y /etc/sysconfig/libvirt-guests
That file seems to be modified by Packstack due to a very old workaround. I have proposed https://review.openstack.org/467629 as a fix.
After the initial fix in upstream packstack, we are still seeing problems because libvirt-client is not installed in compute nodes: 172.16.1.13_compute.pp: [ ERROR ] 13:25:06 Applying Puppet manifests [ ERROR ] 13:25:06 13:25:06 ERROR : Error appeared during Puppet run: 172.16.1.13_compute.pp 13:25:06 Error: /Stage[main]/Packstack::Nova::Compute::Libvirt/Exec[virsh-net-destroy-default]: Could not evaluate: Could not find command '/usr/bin/virsh' 13:25:06 You will find full trace in log /var/tmp/packstack/20170614-091130-NMIUL2/manifests/172.16.1.13_compute.pp.log The root cause is that libvirt-client has been removed as dependency for libvirt-daemon after libvirt-2.1 (http://pkgs.fedoraproject.org/cgit/rpms/libvirt.git/commit/?h=f26&id=b1ac7b57910fa4b2ca87039c3150dcb77ca576d1) We are discussing if we should add libvirt-client as dependency for openstack-nova-compute or fix it in all tooling that requires it.
Theoretically all config steps is doable without virsh usage, so we should not depend on it. For example any libvirt binding (libvirt-python) is capable of doing the job. It might be tempting to just as add libvirt-client dependency to something, but it might not be the best solution.
We've discussed it in https://review.rdoproject.org/r/#/c/7077/ . Finally we've added the dependency to keep backwards compatibility.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2017:3462