--- # SPDX-license-identifier: Apache-2.0 ############################################################################## # Copyright (c) 2018 # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## - hosts: localhost become: yes pre_tasks: - name: Load kud variables include_vars: file: kud-vars.yml tasks: - name: Create SRIOV dest folder file: state: directory path: "{{ sriov_dest }}" - name: Fetching SRIOV driver block: - name: Download SRIOV driver tarball get_url: url: "{{ sriov_driver_url }}" dest: "{{ sriov_dest }}/{{ sriov_package }}.tar.gz" - hosts: kube-node become: yes pre_tasks: - name: Load kud variables include_vars: file: kud-vars.yml tasks: - name: Create a destination for driver folder in the target's /tmp file: state: directory path: "{{ item }}" with_items: - "{{ base_dest }}/sriov/{{ sriov_package }}" - name: Create SRIOV dest folder file: state: directory path: "sriov" - name: Register SRIOV env variable shell: "echo {{ SRIOV_ENABLED | default(False) }}" - name: Copy SRIOV check script to target copy: src: "{{ playbook_dir }}/sriov_hardware_check.sh" dest: sriov mode: 0755 - name: Run the script and re-evaluate the variable command: "sriov/sriov_hardware_check.sh" register: output - debug: var: output.stdout_lines - set_fact: SRIOV_ENABLED: "{{ output.stdout }}" - debug: var: output - name: Clean the script and folder file: path: sriov state: absent - name: Install SRIOV compilation packges package: name: "{{ item }}" state: present with_items: "{{ sriov_pkgs }}" when: SRIOV_ENABLED - name: Extract SRIOV source code unarchive: src: "{{ sriov_dest }}/{{ sriov_package }}.tar.gz" dest: "{{ base_dest }}/sriov" when: SRIOV_ENABLED - name: Build the SRIOV target make: chdir: "{{ base_dest }}/sriov/{{ sriov_package }}/src" when: SRIOV_ENABLED - name: Create SRIOV driver folder in the target destination file: state: directory path: "{{ item }}" with_items: - sriov_driver when: SRIOV_ENABLED - name: Copy SRIOV module to target destination copy: src: "{{ base_dest }}/sriov/{{ sriov_package }}/src/iavf.ko" dest: sriov_driver remote_src: yes when: SRIOV_ENABLED - name: Copy SRIOV install script to target copy: src: "{{ playbook_dir }}/install_iavf_drivers.sh" dest: sriov_driver/install.sh mode: 0755 when: SRIOV_ENABLED - name: Run the install script with arguments shell: ./install.sh args: chdir: "sriov_driver" when: SRIOV_ENABLED - name: Clean the SRIOV folder file: path: "{{ base_dest }}/sriov" state: absent