Don't add IOMMU to grub when it is not bare metal 53/65753/1
authorStepan Andrushko <stepanx.andrushko@intel.com>
Wed, 12 Dec 2018 14:40:27 +0000 (16:40 +0200)
committerStepan Andrushko <stepanx.andrushko@intel.com>
Wed, 12 Dec 2018 14:49:47 +0000 (16:49 +0200)
Fix needed when running 'enable_iommu_on_boot' ansible role
inside the VM where 'ansible_system_vendor' is neither
'AuthenticAMD' nor 'Intel Corporation'.

JIRA: YARDSTICK-1469

Change-Id: I37e399fd892d1ec41239632948758284ccbe98ac
Signed-off-by: Stepan Andrushko <stepanx.andrushko@intel.com>
ansible/roles/enable_iommu_on_boot/tasks/main.yml

index e406fcc..188b329 100644 (file)
     iommu_boot_params: ' amd_iommu=on iommu=pt'
   when: hostvars[inventory_hostname]['ansible_system_vendor'] == "AuthenticAMD"
 
-- name: Define grub string for IOMMU
-  set_fact:
-    enable_iommu: 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX{{ iommu_boot_params }}'
+- block:
+  - name: Define grub string for IOMMU
+    set_fact:
+      enable_iommu: 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX{{ iommu_boot_params }}'
 
-- name: check if iommu is set by this role in {{ grub_file}}
-  lineinfile:
-    path: "{{ grub_file}}"
-    regexp: '{{ iommu_help_string }}'
-    line: '{{ iommu_help_string }}'
-    state: absent
-  check_mode: yes
-  register: is_nsb_iommu_role
-  ignore_errors: True
+  - name: check if iommu is set by this role in {{ grub_file}}
+    lineinfile:
+      path: "{{ grub_file}}"
+      regexp: '{{ iommu_help_string }}'
+      line: '{{ iommu_help_string }}'
+      state: absent
+    check_mode: yes
+    register: is_nsb_iommu_role
+    ignore_errors: True
 
-- name: Check if IOMMU is set by someone else
-  lineinfile:
-    path: "{{ grub_file}}"
-    regexp: "_iommu="
-    line: '{{ iommu_help_string }}'
-    state: absent
-  check_mode: yes
-  register: is_iommu
-  ignore_errors: True
+  - name: Check if IOMMU is set by someone else
+    lineinfile:
+      path: "{{ grub_file}}"
+      regexp: "_iommu="
+      line: '{{ iommu_help_string }}'
+      state: absent
+    check_mode: yes
+    register: is_iommu
+    ignore_errors: True
 
-- name: Send info that IOMMU is configured by someone else
-  debug:
-    msg: "INFO: NOT modified, IOMMU is already configured by someone."
-  when:
-    - not is_nsb_iommu_role.changed
-    - is_iommu.changed
+  - name: Send info that IOMMU is configured by someone else
+    debug:
+      msg: "INFO: NOT modified, IOMMU is already configured by someone."
+    when:
+      - not is_nsb_iommu_role.changed
+      - is_iommu.changed
 
-- name: Add IOMMU when it is not set
-  lineinfile:
-    path: "{{ grub_file }}"
-    regexp: "{{ iommu_help_string }}"
-    line: '{{ enable_iommu }}" {{ iommu_help_string }}'
-  when:
-    - not is_nsb_iommu_role.changed
-    - not is_iommu.changed
+  - name: Add IOMMU when it is not set
+    lineinfile:
+      path: "{{ grub_file }}"
+      regexp: "{{ iommu_help_string }}"
+      line: '{{ enable_iommu }}" {{ iommu_help_string }}'
+    when:
+      - not is_nsb_iommu_role.changed
+      - not is_iommu.changed
 
-- name: find boot grub.cfg
-  find:
-    paths: /boot
-    file_type: file
-    patterns: 'grub*.cfg'
-    recurse: yes
-  register: grub_files
+  - name: find boot grub.cfg
+    find:
+      paths: /boot
+      file_type: file
+      patterns: 'grub*.cfg'
+      recurse: yes
+    register: grub_files
 
-- include: manual_modify_grub.yml
-  # only tested on Ubuntu, kernel line is probably different on other distros
-  with_items: "{{ grub_files.files }}"
-  when: ansible_distribution == "Ubuntu"
+  - include: manual_modify_grub.yml
+    # only tested on Ubuntu, kernel line is probably different on other distros
+    with_items: "{{ grub_files.files }}"
+    when: ansible_distribution == "Ubuntu"
+  when: iommu_boot_params is defined