add python compatibility module
[multicloud/k8s.git] / kud / deployment_infra / playbooks / preconfigure-qat.yml
1 ---
2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
4 # Copyright (c) 2018
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10
11 - hosts: localhost
12   become: yes
13   pre_tasks:
14     - name: Load kud variables
15       include_vars:
16         file: kud-vars.yml
17   tasks:
18     - name: Create QAT dest folder
19       file:
20         state: directory
21         path: "{{ qat_dest }}"
22     - name: Download QAT driver tarball
23       get_url:
24         url: "{{ qat_driver_url }}"
25         dest: "{{ qat_dest }}/{{ qat_package }}.tar.gz"
26
27 - hosts: kube-node
28   become: yes
29   pre_tasks:
30     - name: Load kud variables
31       include_vars:
32         file: kud-vars.yml
33   tasks:
34     - name: Create destination folder for QAT check script
35       file:
36         state: directory
37         path: "{{ base_dest }}/qat"
38     - name: Create QAT check script
39       copy:
40         dest: "{{ base_dest }}/qat/qat.sh"
41         content: |
42             #!/bin/bash
43             qat_device=$( for i in 0434 0435 37c8 6f54 19e2; \
44                     do lspci -d 8086:$i -m; done |\
45                             grep -i "Quick*" | head -n 1 | cut -d " " -f 5 )
46             if [ -z "$qat_device" ]; then
47                 echo "False"
48                 exit 0
49             else
50                 echo "True"
51             fi
52         mode: 0755
53     - name: Run QAT check script and re-evaluate the variable
54       command: ./qat.sh
55       args:
56         chdir: "{{ base_dest }}/qat"
57       register: output
58     - debug:
59         var: output.stdout_lines
60     - set_fact:
61         QAT_ENABLED: "{{ output.stdout }}"
62     - debug:
63         var: output
64     - name: Clean QAT check script and folder
65       file:
66         path: "{{ base_dest }}/qat"
67         state: absent
68     - name: Install QAT driver
69       block:
70       - name: Install QAT compilation packages
71         package:
72           name: "{{ item }}"
73           state: present
74         with_items:
75           - pciutils
76           - build-essential
77           - libudev-dev
78           - pkg-config
79       - name: Create destination folder for QAT source code
80         file:
81           state: directory
82           path: "{{ qat_dest }}/{{ qat_package }}"
83       - name: Extract QAT source code
84         unarchive:
85           src: "{{ qat_dest }}/{{ qat_package }}.tar.gz"
86           dest: "{{ qat_dest }}/{{ qat_package }}"
87       - name: Configure the target
88         command: ./configure --enable-icp-sriov=host
89         args:
90           chdir: "{{ qat_dest }}/{{ qat_package }}"
91       - name: Build QAT driver
92         make:
93           chdir: "{{ qat_dest }}/{{ qat_package }}"
94           target: "{{ item }}"
95         loop:
96           - clean
97           - uninstall
98           - install
99       - name: Copy QAT driver install script to target folder
100         copy:
101           src: "install_qat.sh"
102           dest: "{{ qat_dest }}/{{ qat_package }}/build"
103           mode: 0755
104       - name: Copy /etc/default/qat to target folder
105         copy:
106           src: "/etc/default/qat"
107           dest: "{{ qat_dest }}/{{ qat_package }}/build"
108           remote_src: yes
109       - name: Run a script with arguments
110         command: ./install_qat.sh
111         args:
112           chdir: "{{ qat_dest }}/{{ qat_package }}/build"
113       - name: Copy QAT substitue script to target folder
114         copy:
115           src: "substitute.sh"
116           dest: "{{ qat_dest }}/{{ qat_package }}/build"
117           mode: 0755
118       - name: Update the QAT device SSL values to avoid duplication
119         command: ./substitute.sh
120         args:
121           chdir: "{{ qat_dest }}/{{ qat_package }}/build"
122       - name: Restart acceleration driver framework
123         command: adf_ctl restart
124       - name: Restart QAT service
125         service:
126           name: qat_service
127           state: restarted
128       when: QAT_ENABLED