diff options
author | Feng Pan <fpan@redhat.com> | 2017-11-28 16:26:22 -0500 |
---|---|---|
committer | Feng Pan <fpan@redhat.com> | 2017-11-30 17:19:09 -0500 |
commit | 8af37f28bcd5bf990ef501601ec6998b8f9b8fcc (patch) | |
tree | ae4d708aea7724e0afcd6546e7e896f28b73647f | |
parent | 53b4d59e1b5ffd2095d75c88943bbf4970dca053 (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.py | 9 | ||||
-rw-r--r-- | lib/ansible/playbooks/deploy_dependencies.yml | 28 |
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 |