02a9ef3d00638fedf326ca6333eb4dedcb4a52d6
[csit.git] / resources / tools / testbed-setup / ansible / roles / calibration / tasks / main.yaml
1 ---
2 # file: roles/calibration/tasks/main.yaml
3
4 - name: Calibration - Install Distribution - Release - Machine Prerequisites
5   package:
6     name: "{{ packages | flatten(levels=1) }}"
7     state: latest
8     update_cache: true
9   tags:
10     - install-dependencies
11
12 - name: Calibration - Check CPU Power States
13   shell: "lscpu"
14   register: current_lscpu
15   changed_when: false
16   failed_when: |
17     'CPU min MHz' in current_lscpu.stdout and
18     'Intel(R) Xeon(R)' in current_lscpu.stdout
19   tags:
20     - check-cpu-frequency
21
22 - name: Calibration - Check Kernel Version of "{{ kernel_version }}"
23   shell: "uname -r"
24   register: current_kernel_version
25   changed_when: false
26   failed_when: |
27     kernel_version not in current_kernel_version.stdout
28   tags:
29     - check-kernel-version
30
31 - name: Calibration - Check Kernel Parameters
32   shell: "cat /proc/cmdline"
33   register: current_kernel_parameters
34   changed_when: false
35   failed_when: |
36     'isolcpus' not in current_kernel_parameters.stdout or
37     'nohz_full' not in current_kernel_parameters.stdout or
38     'rcu_nocbs' not in current_kernel_parameters.stdout or
39     'processor.max_cstate=1' not in current_kernel_parameters.stdout or
40     'nmi_watchdog=0' not in current_kernel_parameters.stdout or
41     'intel_iommu=on' not in current_kernel_parameters.stdout or
42     'nosoftlockup' not in current_kernel_parameters.stdout
43   tags:
44     - check-cmdline
45
46 - name: Calibration - Get Spectre Meltdown Checker
47   get_url:
48     url: "https://meltdown.ovh"
49     dest: "/opt/spectre-meltdown-checker.sh"
50     mode: "744"
51   tags:
52     - check-spectre-meltdown
53
54 - name: Calibration - Run Spectre Meltdown Checker
55   shell: "/opt/spectre-meltdown-checker.sh --no-color || true"
56   async: 60
57   poll: 0
58   ignore_errors: true
59   register: spectre_meltdown_async
60   tags:
61     - check-spectre-meltdown
62
63 - name: Calibration - {{ ansible_machine }} Specific
64   include_tasks: "{{ ansible_machine }}.yaml"
65   tags:
66     - check-machine-specific
67     - check-jitter-tool
68
69 - name: Check sync status
70   async_status:
71     jid: "{{ spectre_meltdown_async.ansible_job_id }}"
72   register: "spectre_meltdown_poll_results"
73   until: spectre_meltdown_poll_results.finished
74   retries: 30
75
76 - debug: var=spectre_meltdown_poll_results.stdout_lines
77   tags:
78     - check-spectre-meltdown