blob: f7c365e0b8412e899a7a22a8f76fb97b17d0cca8 [file] [log] [blame]
Hyunsun Moon4f9c1cd2021-06-03 09:15:55 -07001---
2# sriov tasks/main.yml
3#
4# SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
5# SPDX-License-Identifier: Apache-2.0
6
7- name: include OS-specific vars
8 include_vars: "{{ ansible_os_family }}.yml"
9
10- name: include OS-specific tasks
11 include_tasks: "{{ ansible_os_family }}.yml"
12
Hyunsun Moon4f9c1cd2021-06-03 09:15:55 -070013- name: Load vfio_pci module to the kernel
14 modprobe:
15 name: vfio_pci
16 state: present
17 when: ansible_kernel is version('5.4','<')
18
19- name: Set the vfio_pci module to load on boot
20 lineinfile:
21 dest: /etc/modules-load.d/vfio_pci.conf
22 create: true
23 regexp: "^vfio_pci"
24 line: "vfio_pci"
25 mode: 0644
26 when: ansible_kernel is version('5.4','<')
27
28- name: Create sriov system service
29 template:
30 src: "{{ item.src }}"
31 dest: "{{ item.dest }}"
32 mode: "{{ item.mode }}"
33 owner: root
34 group: root
35 loop:
36 - {src: 'sriov', dest: '/etc/default/sriov', mode: 644}
37 - {src: 'sriov.sh.j2', dest: '/usr/local/bin/sriov.sh', mode: 'a+x'}
38 - {src: 'sriov.service.j2', dest: '/etc/systemd/system/sriov.service', mode: 644}
39 notify: enable sriov.service
40
41- name: Flush handlers
42 meta: flush_handlers
43
44- name: Add kernel boot parameters to the grub
45 lineinfile:
46 dest: /etc/default/grub
47 regexp: '^GRUB_CMDLINE_LINUX="(?!.* {{ item.regex }})(.*)"'
48 line: 'GRUB_CMDLINE_LINUX="\1 {{ item.context }}"'
49 state: present
50 backrefs: true
51 loop:
52 - {regex: 'intel_iommu=', context: 'intel_iommu=on'}
53 - {regex: 'transparent_hugepage=', context: 'transparent_hugepage=never'}
54 - {regex: 'default_hugepagesz=', context: 'default_hugepagesz=1G'}
55 - {regex: 'hugepagesz=1G', context: 'hugepagesz=1G hugepages={{ sriov_1g_hugepages }}'}
56 notify: update grub