diff --git a/ansible/roles/nova/templates/nova.conf.d/libvirt.conf.j2 b/ansible/roles/nova/templates/nova.conf.d/libvirt.conf.j2 new file mode 100644 index 0000000000..f48c63040a --- /dev/null +++ b/ansible/roles/nova/templates/nova.conf.d/libvirt.conf.j2 @@ -0,0 +1,19 @@ +[libvirt] +connection_uri = "qemu+tcp://{{ migration_interface_address }}/system" +{% if enable_ceph | bool and nova_backend == "rbd" %} +images_type = rbd +images_rbd_pool = {{ ceph_nova_pool_name }} +images_rbd_ceph_conf = /etc/ceph/ceph.conf +rbd_user = nova +disk_cachemodes="network=writeback" +{% if nova_hw_disk_discard != '' %} +hw_disk_discard = {{ nova_hw_disk_discard }} +{% endif %} +{% endif %} +{% if nova_backend == "rbd" and external_ceph_cephx_enabled | bool %} +rbd_secret_uuid = {{ rbd_secret_uuid }} +{% endif %} +virt_type = {{ nova_compute_virt_type }} +{% if nova_libvirt_cpu_mode %} +cpu_mode = {{ nova_libvirt_cpu_mode }} +{% endif %} diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2 index 39bb43d9f9..4a6ac8534e 100644 --- a/ansible/roles/nova/templates/nova.conf.j2 +++ b/ansible/roles/nova/templates/nova.conf.j2 @@ -185,27 +185,13 @@ memcache_security_strategy = ENCRYPT memcache_secret_key = {{ memcache_secret_key }} memcached_servers = {% for host in groups['memcached'] %}{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ memcached_port }}{% if not loop.last %},{% endif %}{% endfor %} +{% if service_name == 'nova-compute' %} {% if nova_compute_virt_type in ['kvm', 'qemu'] %} -[libvirt] -connection_uri = "qemu+tcp://{{ migration_interface_address }}/system" -{% if enable_ceph | bool and nova_backend == "rbd" %} -images_type = rbd -images_rbd_pool = {{ ceph_nova_pool_name }} -images_rbd_ceph_conf = /etc/ceph/ceph.conf -rbd_user = nova -disk_cachemodes="network=writeback" -{% if nova_hw_disk_discard != '' %} -hw_disk_discard = {{ nova_hw_disk_discard }} +{# must be an include because Ansible 2.8 (and earlier) does not like defined variables referencing undefined variables: migration_interface_address here #} +{# see https://github.com/ansible/ansible/issues/58835 #} +{% include 'nova.conf.d/libvirt.conf.j2' %} {% endif %} {% endif %} -{% if nova_backend == "rbd" and external_ceph_cephx_enabled | bool %} -rbd_secret_uuid = {{ rbd_secret_uuid }} -{% endif %} -virt_type = {{ nova_compute_virt_type }} -{% endif %} -{% if nova_libvirt_cpu_mode %} -cpu_mode = {{ nova_libvirt_cpu_mode }} -{% endif %} {% if nova_compute_virt_type == "vmware" %} [vmware]