aboutsummaryrefslogtreecommitdiffstats
path: root/fdio.infra.ansible/roles/intel/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'fdio.infra.ansible/roles/intel/tasks')
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/dsa.yaml39
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/i40e.yaml37
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/iavf.yaml37
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/ice.yaml91
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/main.yaml146
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/qat1.yaml54
-rw-r--r--fdio.infra.ansible/roles/intel/tasks/qat2.yaml57
7 files changed, 461 insertions, 0 deletions
diff --git a/fdio.infra.ansible/roles/intel/tasks/dsa.yaml b/fdio.infra.ansible/roles/intel/tasks/dsa.yaml
new file mode 100644
index 0000000000..2f038b0e9f
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/dsa.yaml
@@ -0,0 +1,39 @@
+---
+# file: tasks/dsa.yaml
+
+- name: Get DSA Driver
+ ansible.builtin.uri:
+ url: "{{ intel_dsa_url[dsa] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/accel-config-v{{ dsa }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract DSA Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/accel-config-v{{ dsa }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/idxd-config-accel-config-v{{ dsa }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install DSA Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/idxd-config-accel-config-v{{ dsa }}"
+ become: true
+ with_items:
+ - "./autogen.sh"
+ - "./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64"
+ - "make"
+ - "make check"
+ - "make install"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/i40e.yaml b/fdio.infra.ansible/roles/intel/tasks/i40e.yaml
new file mode 100644
index 0000000000..8b069bf9b2
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/i40e.yaml
@@ -0,0 +1,37 @@
+---
+# file: tasks/i40e.yaml
+
+- name: Get i40e Network Adapter Driver
+ ansible.builtin.uri:
+ url: "{{ intel_sourceforge_download_url }}/{{ intel_i40e_url[i40e] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/i40e-{{ i40e }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract i40e Network Adapter Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/i40e-{{ i40e }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/i40e-{{ i40e }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install i40e Network Adapter Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/i40e-{{ i40e }}/src"
+ become: true
+ with_items:
+ - "make install"
+ #- "modprobe -r i40e"
+ - "modprobe i40e"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/iavf.yaml b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml
new file mode 100644
index 0000000000..127e31bee2
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml
@@ -0,0 +1,37 @@
+---
+# file: tasks/iavf.yaml
+
+- name: Get iavf Network Adapter Driver
+ ansible.builtin.uri:
+ url: "{{ intel_sourceforge_download_url }}/{{ intel_iavf_url[iavf] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/iavf-{{ iavf }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract iavf Network Adapter Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/iavf-{{ iavf }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/iavf-{{ iavf }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install iavf Network Adapter Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/iavf-{{ iavf }}/src"
+ become: true
+ with_items:
+ - "make install"
+ - "modprobe -r iavf"
+ - "modprobe iavf"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/ice.yaml b/fdio.infra.ansible/roles/intel/tasks/ice.yaml
new file mode 100644
index 0000000000..c773a65a34
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/ice.yaml
@@ -0,0 +1,91 @@
+---
+# file: tasks/ice.yaml
+
+- name: Get ice Network Adapter Driver
+ ansible.builtin.uri:
+ url: "{{ intel_sourceforge_download_url }}/{{ intel_ice_url[ice] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/ice-{{ ice }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Extract ice Network Adapter Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/ice-{{ ice }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/ice-{{ ice }}"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install ice Network Adapter Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/ice-{{ ice }}/src"
+ become: true
+ with_items:
+ - "make install"
+ #- "modprobe -r ice"
+ - "modprobe ice"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Get Dynamic Device Personalization (DDP) Package
+ ansible.builtin.get_url:
+ url: "{{ intel_download_url }}/{{ intel_ddp_url[ddp] }}"
+ dest: "{{ intel_extract_dir }}/800-Series-Comms-Binary-Package-{{ ddp }}.zip"
+ mode: 0644
+ tags:
+ - intel-inst
+
+- name: Extract Dynamic Device Personalization (DDP) Package
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/800-Series-Comms-Binary-Package-{{ ddp }}.zip"
+ dest: "{{ intel_extract_dir }}/"
+ creates: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.zip"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Extract Dynamic Device Personalization (DDP) Package
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.zip"
+ dest: "{{ intel_extract_dir }}/"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Copy Dynamic Device Personalization (DDP) Package
+ ansible.builtin.copy:
+ src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.pkg"
+ dest: "/lib/firmware/updates/intel/ice/ddp/ice-{{ ddp }}.pkg"
+ remote_src: true
+ follow: true
+ tags:
+ - intel-inst
+
+- name: Link Dynamic Device Personalization (DDP) Package
+ ansible.builtin.file:
+ src: "ice-{{ ddp }}.pkg"
+ dest: "/lib/firmware/updates/intel/ice/ddp/ice.pkg"
+ state: link
+ tags:
+ - intel-inst
+
+- name: Extract Dynamic Device Personalization (DDP) Package (cleanup)
+ ansible.builtin.file:
+ path: "{{ item }}"
+ state: absent
+ with_items:
+ - "{{ intel_extract_dir }}/E810 DDP for Comms TechGuide_Rev2.3.pdf"
+ - "{{ intel_extract_dir }}/Intel_800_series_market_segment_DDP_license.txt"
+ tags:
+ - intel-inst
diff --git a/fdio.infra.ansible/roles/intel/tasks/main.yaml b/fdio.infra.ansible/roles/intel/tasks/main.yaml
new file mode 100644
index 0000000000..d7598deca7
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/main.yaml
@@ -0,0 +1,146 @@
+---
+# file: tasks/main.yaml
+
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
+ update_cache: true
+ cache_valid_time: 3600
+ when:
+ - ansible_distribution|lower == 'ubuntu'
+ tags:
+ - intel-inst-drivers
+
+- name: Install Prerequisites
+ ansible.builtin.package:
+ name: "{{ packages | flatten(levels=1) }}"
+ state: latest
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel Ethernet 700 Series
+ ansible.builtin.shell: "lspci -d 8086:1583; lspci -d 8086:1585; lspci -d 8086:1572; lspci -d 8086:158a; lspci -d 8086:158b"
+ register: intel_700_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel Ethernet 800 Series
+ ansible.builtin.shell: "lspci -d 8086:1592; lspci -d 8086:1891; lspci -d 8086:188c"
+ register: intel_800_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel DSA
+ ansible.builtin.shell: "lspci -d 8086:0b25"
+ register: intel_dsa_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel C4XXX
+ ansible.builtin.shell: "lspci -d 8086:18a0"
+ register: intel_qat1_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Check Presence of Intel 4XXX
+ ansible.builtin.shell: "lspci -d 8086:4942"
+ register: intel_qat2_pcis
+ failed_when: false
+ changed_when: false
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel Ethernet 700 Series driver versions
+ ansible.builtin.set_fact:
+ i40e: "{{ intel_700_compatibility_matrix[intel_700_matrix]['i40e'] }}"
+ iavf: "{{ intel_700_compatibility_matrix[intel_700_matrix]['iavf'] }}"
+ nvm: "{{ intel_700_compatibility_matrix[intel_700_matrix]['nvm'] }}"
+ when: >
+ intel_700_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel Ethernet 800 Series driver versions
+ ansible.builtin.set_fact:
+ ice: "{{ intel_800_compatibility_matrix[intel_800_matrix]['ice'] }}"
+ ddp: "{{ intel_800_compatibility_matrix[intel_800_matrix]['ddp'] }}"
+ iavf: "{{ intel_800_compatibility_matrix[intel_800_matrix]['iavf'] }}"
+ nvm: "{{ intel_800_compatibility_matrix[intel_800_matrix]['nvm'] }}"
+ when: >
+ intel_800_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel DSA driver versions
+ ansible.builtin.set_fact:
+ dsa: "{{ intel_dsa_compatibility_matrix['dsa'] }}"
+ when: >
+ intel_dsa_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Get Intel QAT driver versions
+ ansible.builtin.set_fact:
+ qat1: "{{ intel_qat_compatibility_matrix['qat1'] }}"
+ qat2: "{{ intel_qat_compatibility_matrix['qat2'] }}"
+ when: >
+ intel_qat_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel Ethernet 700 Series
+ import_tasks: i40e.yaml
+ when: >
+ intel_700_pcis.stdout_lines | length > 0 and
+ intel_700_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel Ethernet 800 Series
+ import_tasks: ice.yaml
+ when: >
+ intel_800_pcis.stdout_lines | length > 0 and
+ intel_800_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel iAVF
+ import_tasks: iavf.yaml
+ when: >
+ (intel_700_pcis.stdout_lines | length > 0 and
+ intel_700_matrix is defined) or
+ (intel_800_pcis.stdout_lines | length > 0 and
+ intel_800_matrix is defined)
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel DSA
+ import_tasks: dsa.yaml
+ when: >
+ intel_dsa_pcis.stdout_lines | length > 0 and
+ intel_dsa_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel QAT 1.x
+ import_tasks: qat1.yaml
+ when: >
+ intel_qat1_pcis.stdout_lines | length > 0 and
+ intel_qat_matrix is defined
+ tags:
+ - intel-inst-drivers
+
+- name: Driver Intel QAT 2.x
+ import_tasks: qat2.yaml
+ when: >
+ intel_qat2_pcis.stdout_lines | length > 0 and
+ intel_qat_matrix is defined
+ tags:
+ - intel-inst-drivers \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/intel/tasks/qat1.yaml b/fdio.infra.ansible/roles/intel/tasks/qat1.yaml
new file mode 100644
index 0000000000..701c0c1bf1
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/qat1.yaml
@@ -0,0 +1,54 @@
+---
+# file: tasks/qat1.yaml
+
+- name: Get QAT 1.x Driver
+ ansible.builtin.uri:
+ url: "{{ intel_download_url }}/{{ intel_qat_url[qat1] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Create a Directory For QAT 1.x Driver
+ ansible.builtin.file:
+ path: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/"
+ state: "directory"
+ mode: "0755"
+ tags:
+ - intel-inst
+
+- name: Extract QAT 1.x Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install QAT1.x Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}"
+ become: true
+ with_items:
+ - "./configure --enable-icp-sriov=host --enable-icp-sym-only"
+ - "make"
+ - "make install"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Load Kernel Modules By Default
+ ansible.builtin.lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "qat_c4xxx"
+ tags:
+ - intel-inst \ No newline at end of file
diff --git a/fdio.infra.ansible/roles/intel/tasks/qat2.yaml b/fdio.infra.ansible/roles/intel/tasks/qat2.yaml
new file mode 100644
index 0000000000..a560f16b2c
--- /dev/null
+++ b/fdio.infra.ansible/roles/intel/tasks/qat2.yaml
@@ -0,0 +1,57 @@
+---
+# file: tasks/qat2.yaml
+
+- name: Get QAT 2.x Driver
+ ansible.builtin.uri:
+ url: "{{ intel_download_url }}/{{ intel_qat_url[qat2] }}"
+ follow_redirects: "all"
+ force: true
+ dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz"
+ mode: "0644"
+ failed_when: false
+ tags:
+ - intel-inst
+
+- name: Create a Directory For QAT 2.x Driver
+ ansible.builtin.file:
+ path: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/"
+ state: "directory"
+ mode: "0755"
+ tags:
+ - intel-inst
+
+- name: Extract QAT 2.x Driver
+ ansible.builtin.unarchive:
+ remote_src: true
+ src: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz"
+ dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/"
+ register: intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Install QAT 2.x Driver
+ ansible.builtin.command: "{{ item }}"
+ args:
+ chdir: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}"
+ become: true
+ with_items:
+ - "wget http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_249.11-0ubuntu3.7_amd64.deb"
+ - "dpkg -i ./libudev-dev_249.11-0ubuntu3.7_amd64.deb"
+ - "./configure --enable-icp-sriov=host --enable-icp-sym-only"
+ - "make"
+ - "make install"
+ - "apt remove -y libudev-dev"
+ when:
+ - intel_driver_extracted
+ tags:
+ - intel-inst
+
+- name: Load Kernel Modules By Default
+ ansible.builtin.lineinfile:
+ path: "/etc/modules"
+ state: "present"
+ line: "{{ item }}"
+ with_items:
+ - "qat_4xxx"
+ tags:
+ - intel-inst \ No newline at end of file