Ansible: Pre-check tests 47/26747/5
authorPeter Mikus <pmikus@cisco.com>
Tue, 28 Apr 2020 12:50:18 +0000 (12:50 +0000)
committerPeter Mikus <pmikus@cisco.com>
Thu, 7 May 2020 06:58:07 +0000 (06:58 +0000)
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: I745ceb519220c4d08951dff07350f2f4709f3533

resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml
resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml

index f7c37a7..5be9fa9 100644 (file)
@@ -1,6 +1,7 @@
 ---
 # file: roles/calibration/defaults/main.yaml
 
+# Packages to install.
 packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
 
 packages_base:
@@ -17,6 +18,16 @@ packages_by_arch:
   x86_64:
     - []
 
+# Kernel version to check.
+kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lower][ansible_machine] | join(' ') }}"
+
+kernel_version_by_distro_by_arch:
+  ubuntu:
+    x86_64:
+      - "4.15.0-72-generic"
+    aarch64:
+      - "4.15.0-54-generic"
+
 pma_directory: "/tmp/pma_tools"
 jitter_core: 7
-jitter_iterations: 30
+jitter_iterations: 20
index dc789a7..02a9ef3 100644 (file)
@@ -1,9 +1,6 @@
 ---
 # file: roles/calibration/tasks/main.yaml
 
-- name: Print Ansible facts
-  debug: var=ansible_facts
-
 - name: Calibration - Install Distribution - Release - Machine Prerequisites
   package:
     name: "{{ packages | flatten(levels=1) }}"
@@ -12,6 +9,40 @@
   tags:
     - install-dependencies
 
+- name: Calibration - Check CPU Power States
+  shell: "lscpu"
+  register: current_lscpu
+  changed_when: false
+  failed_when: |
+    'CPU min MHz' in current_lscpu.stdout and
+    'Intel(R) Xeon(R)' in current_lscpu.stdout
+  tags:
+    - check-cpu-frequency
+
+- name: Calibration - Check Kernel Version of "{{ kernel_version }}"
+  shell: "uname -r"
+  register: current_kernel_version
+  changed_when: false
+  failed_when: |
+    kernel_version not in current_kernel_version.stdout
+  tags:
+    - check-kernel-version
+
+- name: Calibration - Check Kernel Parameters
+  shell: "cat /proc/cmdline"
+  register: current_kernel_parameters
+  changed_when: false
+  failed_when: |
+    'isolcpus' not in current_kernel_parameters.stdout or
+    'nohz_full' not in current_kernel_parameters.stdout or
+    'rcu_nocbs' not in current_kernel_parameters.stdout or
+    'processor.max_cstate=1' not in current_kernel_parameters.stdout or
+    'nmi_watchdog=0' not in current_kernel_parameters.stdout or
+    'intel_iommu=on' not in current_kernel_parameters.stdout or
+    'nosoftlockup' not in current_kernel_parameters.stdout
+  tags:
+    - check-cmdline
+
 - name: Calibration - Get Spectre Meltdown Checker
   get_url:
     url: "https://meltdown.ovh"
@@ -24,7 +55,7 @@
   shell: "/opt/spectre-meltdown-checker.sh --no-color || true"
   async: 60
   poll: 0
-  ignore_errors: yes
+  ignore_errors: true
   register: spectre_meltdown_async
   tags:
     - check-spectre-meltdown
     - check-machine-specific
     - check-jitter-tool
 
-- name: Calibration - Get BIOS info
-  shell: "dmidecode -t bios"
-  ignore_errors: yes
-  register: dmidecode_bios
-  tags:
-    - check-bios
-
-- debug: var=dmidecode_bios.stdout_lines
-  tags:
-    - check-bios
-
 - name: Check sync status
   async_status:
     jid: "{{ spectre_meltdown_async.ansible_job_id }}"