summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFeng Pan <fpan@redhat.com>2017-11-28 16:26:22 -0500
committerFeng Pan <fpan@redhat.com>2017-11-30 17:19:09 -0500
commit8af37f28bcd5bf990ef501601ec6998b8f9b8fcc (patch)
treeae4d708aea7724e0afcd6546e7e896f28b73647f
parent53b4d59e1b5ffd2095d75c88943bbf4970dca053 (diff)
Fix nested kvm detection and enablement
- Fix ansible kvm_intel kernel module reload when trying to enable nested kvm - Add "--libvirt-type qemu" to deploy command when nested kvm is not enabled. JIRA: APEX-514 Change-Id: I0e659b1c99b5732854d723e1cb049845cb60ef37 Signed-off-by: Feng Pan <fpan@redhat.com>
-rw-r--r--apex/overcloud/deploy.py9
-rw-r--r--lib/ansible/playbooks/deploy_dependencies.yml28
2 files changed, 25 insertions, 12 deletions
diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py
index 3ddb5f40..809afc13 100644
--- a/apex/overcloud/deploy.py
+++ b/apex/overcloud/deploy.py
@@ -129,7 +129,7 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir,
elif num_control > 1 and not ds['global_params']['ha_enabled']:
num_control = 1
cmd = "openstack overcloud deploy --templates --timeout {} " \
- "--libvirt-type kvm".format(con.DEPLOY_TIMEOUT)
+ .format(con.DEPLOY_TIMEOUT)
# build cmd env args
for option in deploy_options:
cmd += " -e {}".format(option)
@@ -139,6 +139,13 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir,
cmd += ' --control-flavor control --compute-flavor compute'
if net_data:
cmd += ' --networks-file network_data.yaml'
+ libvirt_type = 'kvm'
+ if virtual:
+ with open('/sys/module/kvm_intel/parameters/nested') as f:
+ nested_kvm = f.read().strip()
+ if nested_kvm != 'Y':
+ libvirt_type = 'qemu'
+ cmd += ' --libvirt-type {}'.format(libvirt_type)
logging.info("Deploy command set: {}".format(cmd))
with open(os.path.join(tmp_dir, 'deploy_command'), 'w') as fh:
diff --git a/lib/ansible/playbooks/deploy_dependencies.yml b/lib/ansible/playbooks/deploy_dependencies.yml
index d2749675..545ee33d 100644
--- a/lib/ansible/playbooks/deploy_dependencies.yml
+++ b/lib/ansible/playbooks/deploy_dependencies.yml
@@ -54,18 +54,24 @@
name: default
autostart: yes
state: active
- - lineinfile:
- path: /etc/modprobe.d/kvm_intel.conf
- line: 'options kvm-intel nested=1'
- create: yes
- when: ansible_architecture == "x86_64"
- - modprobe:
- name: "{{ item }}"
- state: present
- with_items:
- - kvm
- - kvm_intel
+ - shell: cat /sys/module/kvm_intel/parameters/nested || true
+ register: nested_result
when: ansible_architecture == "x86_64"
+ - name: reload kvm_intel
+ block:
+ - lineinfile:
+ path: /etc/modprobe.d/kvm_intel.conf
+ line: 'options kvm-intel nested=1'
+ create: yes
+ - modprobe:
+ name: kvm_intel
+ state: absent
+ - modprobe:
+ name: kvm_intel
+ state: present
+ when:
+ - ansible_architecture == "x86_64"
+ - "'Y' not in nested_result.stdout"
- name: Generate SSH key for root if missing
shell: test -e ~/.ssh/id_rsa || ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
- name: Check that /u/l/python3.4/site-packages/virtualbmc/vbmc.py exists