diff options
Diffstat (limited to 'ansible/roles')
-rw-r--r-- | ansible/roles/download_drivers/defaults/main.yml | 21 | ||||
-rw-r--r-- | ansible/roles/download_drivers/tasks/i40evf.yml | 36 | ||||
-rw-r--r-- | ansible/roles/download_drivers/tasks/main.yml | 15 | ||||
-rwxr-xr-x | ansible/roles/install_drivers/tasks/Debian.yml | 16 | ||||
-rw-r--r-- | ansible/roles/install_drivers/tasks/RedHat.yml | 16 | ||||
-rw-r--r-- | ansible/roles/install_drivers/tasks/i40evf.yml | 31 | ||||
-rw-r--r-- | ansible/roles/install_drivers/tasks/main.yml | 28 |
7 files changed, 163 insertions, 0 deletions
diff --git a/ansible/roles/download_drivers/defaults/main.yml b/ansible/roles/download_drivers/defaults/main.yml new file mode 100644 index 000000000..ff4c30785 --- /dev/null +++ b/ansible/roles/download_drivers/defaults/main.yml @@ -0,0 +1,21 @@ +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +i40evf_version: "3.4.2" +i40evf_gzfile: "i40evf-{{ i40evf_version }}.tar.gz" +i40evf_url: "https://sourceforge.net/projects/e1000/files/i40evf%20stable/{{ i40evf_version }}/{{ i40evf_gzfile }}/download" +i40evf_dest: "{{ clone_dest }}/" +i40evf_path: "{{ i40evf_dest }}/{{ i40evf_gzfile|regex_replace('[.]tar[.]gz$', '') }}" +i40evf_checksum: + "3.4.2": "sha256:a8e2a722fb2f8ac874cb39545a331761841f1724830ff1581d2012dd37314645" diff --git a/ansible/roles/download_drivers/tasks/i40evf.yml b/ansible/roles/download_drivers/tasks/i40evf.yml new file mode 100644 index 000000000..cb8a09d6c --- /dev/null +++ b/ansible/roles/download_drivers/tasks/i40evf.yml @@ -0,0 +1,36 @@ +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: Directory to store i40evf driver + file: + path: "{{ i40evf_dest }}" + state: directory + +- name: Fetch i40evf driver + get_url: + url: "{{ i40evf_url }}" + dest: "{{ i40evf_dest }}/{{ i40evf_gzfile }}" + validate_certs: False + checksum: "{{ i40evf_checksum[i40evf_version] }}" + +- name: Unarchive the i40evf file + unarchive: + src: "{{ i40evf_dest }}/{{ i40evf_gzfile }}" + dest: "{{ i40evf_dest }}" + copy: no + +- name: Cleanup the archive to save space + file: + path: "{{ i40evf_dest }}/{{ i40evf_gzfile }}" + state: absent diff --git a/ansible/roles/download_drivers/tasks/main.yml b/ansible/roles/download_drivers/tasks/main.yml new file mode 100644 index 000000000..b7c1e0f1f --- /dev/null +++ b/ansible/roles/download_drivers/tasks/main.yml @@ -0,0 +1,15 @@ +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- include: i40evf.yml diff --git a/ansible/roles/install_drivers/tasks/Debian.yml b/ansible/roles/install_drivers/tasks/Debian.yml new file mode 100755 index 000000000..27f6b74cc --- /dev/null +++ b/ansible/roles/install_drivers/tasks/Debian.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: Install kernel headers + action: "{{ ansible_pkg_mgr }} name=linux-headers-{{ chroot_kernel }} state=present" diff --git a/ansible/roles/install_drivers/tasks/RedHat.yml b/ansible/roles/install_drivers/tasks/RedHat.yml new file mode 100644 index 000000000..d2e2a3768 --- /dev/null +++ b/ansible/roles/install_drivers/tasks/RedHat.yml @@ -0,0 +1,16 @@ +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: Install kernel headers + action: "{{ ansible_pkg_mgr }} name=kernel-headers-{{ chroot_kernel }} state=present" diff --git a/ansible/roles/install_drivers/tasks/i40evf.yml b/ansible/roles/install_drivers/tasks/i40evf.yml new file mode 100644 index 000000000..1cd95ceb0 --- /dev/null +++ b/ansible/roles/install_drivers/tasks/i40evf.yml @@ -0,0 +1,31 @@ +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: Make i40evf + make: + chdir: "{{ i40evf_path }}/src" + params: + BUILD_KERNEL: "{{ chroot_kernel }}" + +- name: Make i40evf install + make: + chdir: "{{ i40evf_path }}/src" + target: install + params: + BUILD_KERNEL: "{{ chroot_kernel }}" + +- name: Configure i40evf to load on boot + copy: + content: i40evf + dest: /etc/modules-load.d/i40evf.conf diff --git a/ansible/roles/install_drivers/tasks/main.yml b/ansible/roles/install_drivers/tasks/main.yml new file mode 100644 index 000000000..72a432e54 --- /dev/null +++ b/ansible/roles/install_drivers/tasks/main.yml @@ -0,0 +1,28 @@ +# Copyright (c) 2018 Intel Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- +- name: Find kernel for image, (including chroot) + find_kernel: + kernel: "{{ ansible_kernel }}" + register: found_kernel + +# Do this before installing kernel headers +- name: Set chroot_kernel to be the kernel we found + set_fact: + chroot_kernel: "{{ found_kernel.kernel }}" + +- include: "{{ ansible_os_family }}.yml" + +# Install drivers +- include: i40evf.yml |