aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/testbed-setup/ansible/roles/kernel
diff options
context:
space:
mode:
authorpmikus <pmikus@cisco.com>2021-04-08 10:44:18 +0000
committerPeter Mikus <pmikus@cisco.com>2021-04-08 11:17:15 +0000
commitdf5672b3d9c29b51397f4770eb992c9f3f3955ce (patch)
treeadb4cf36c9b680ebbc44c953391a0d21b986d6b7 /resources/tools/testbed-setup/ansible/roles/kernel
parent8018da98e0f362bc69fc9600fac222a86fd46b5e (diff)
Ansible git move
+ Better accessibility + Compliant with fdio.infra._function_ - function [pxe|terraform|ansible|vagrant] + dill==0.3.3 also applied on TBs - ci-man to follow today - Docs to be updated in separate patch Signed-off-by: pmikus <pmikus@cisco.com> Change-Id: Iff9eaa29d63044188cc8160db2d9b44b7635782a
Diffstat (limited to 'resources/tools/testbed-setup/ansible/roles/kernel')
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml43
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/filter_plugins/main.py143
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml8
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml51
-rw-r--r--resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_focal.yaml51
6 files changed, 0 insertions, 305 deletions
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml
deleted file mode 100644
index b9b4253622..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/defaults/main.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
----
-# file: roles/kernel/defaults/main.yaml
-
-# Kernel version to install (Default to any version).
-kernel_version: "{{ kernel_version_by_distro[ansible_distribution|lower][ansible_distribution_release] | join(' ') }}"
-
-kernel_version_by_distro:
- ubuntu:
- bionic:
- - "4.15.0-72"
- focal:
- - "5.4.0-65"
-
-kernel_packages: "{{ kernel_packages_by_distro[ansible_distribution|lower][ansible_distribution_release] | flatten(levels=1) }}"
-
-kernel_packages_by_distro:
- ubuntu:
- bionic:
- - "linux-image"
- - "linux-headers"
- - "linux-modules"
- - "linux-modules-extra"
- - "linux-tools"
- focal:
- - "linux-image"
- - "linux-headers"
- - "linux-modules"
- - "linux-modules-extra"
- - "linux-tools"
-
-# Packages to remove in relation to kernel upgrade.
-absent_packages: "{{ absent_packages_by_distro[ansible_distribution|lower][ansible_distribution_release] | flatten(levels=1) }}"
-
-absent_packages_by_distro:
- ubuntu:
- bionic:
- - "amd64-microcode"
- - "intel-microcode"
- - "iucode-tool"
- focal:
- - "amd64-microcode"
- - "intel-microcode"
- - "iucode-tool" \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/filter_plugins/main.py b/resources/tools/testbed-setup/ansible/roles/kernel/filter_plugins/main.py
deleted file mode 100644
index 7d909b90e8..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/filter_plugins/main.py
+++ /dev/null
@@ -1,143 +0,0 @@
-
-"""Extra Ansible filters"""
-
-def deb_kernel(packages, kernel_version, current_version):
- """
- Return best matching kernel version.
- Args:
- packages (dict): apt-cache showpkg output.
- kernel_version (str): Kernel version to install.
- current_version (str): Current kernel version.
- Returns:
- str: kernel version.
- """
- kernels = set()
-
- # List all available kernel version and associated repository
- for line in packages['stdout'].splitlines():
- line = line.strip()
- if line.startswith('Package: ') and (
- line.endswith('-common') or # Debian
- line.endswith('-generic')): # Ubuntu
- kernel = line.split()[1]
-
- for string in ('linux-headers-', 'common', 'generic'):
- kernel = kernel.replace(string, '')
- kernel = kernel.strip('-')
-
- if kernel:
- kernels.add(kernel)
-
- # Sort Kernel versions
- versions = {}
- for kernel in kernels:
- try:
- version, build = kernel.split('-', 1)
- except ValueError:
- version = kernel
- build = ''
- versions[kernel] = list(
- int(ver) for ver in version.split('.')) + [build]
- kernels = sorted(versions.keys(), key=versions.get, reverse=True)
-
- # Return more recent kernel package that match version requirement
- for kernel in kernels:
- if kernel.startswith(kernel_version):
- return kernel
-
- raise RuntimeError(
- 'No kernel matching to "%s". Available kernel versions: %s' % (
- kernel_version, ', '.join(reversed(kernels))))
-
-
-def _deb_kernel_package(kernel, dist, arch, name):
- """
- Return kernel package name.
- Args:
- kernel (str): Kernel version.
- dist (str): Distribution.
- arch (str): Architecture.
- name (str): Package name.
- Returns:
- str: kernel package.
- """
- # Define package suffix
- if dist == 'Ubuntu':
- suffix = 'generic'
- elif name == 'linux-image':
- suffix = arch.replace('x86_64', 'amd64')
- else:
- suffix = 'common'
-
- return '-'.join((name, kernel, suffix))
-
-
-def deb_kernel_pkg(packages, kernel_version, current_version, dist, arch, name):
- """
- Return kernel package to install.
- Args:
- packages (dict): apt-cache showpkg output.
- kernel_version (str): Kernel version to install.
- current_version (str): Current kernel version.
- dist (str): Distribution.
- arch (str): Architecture.
- name (str): Package name.
- Returns:
- str: kernel package to install.
- """
- return _deb_kernel_package(
- deb_kernel(packages, kernel_version, current_version), dist, arch, name)
-
-
-def deb_installed_kernel(installed, packages, kernel_version, current_version):
- """
- Return old kernel packages to remove.
- Args:
- installed (dict): dpkg -l output.
- packages (dict): apt-cache showpkg output.
- kernel_version (str): Kernel version to install.
- current_version (str): Current kernel version.
- Returns:
- list of str: Kernel packages to remove.
- """
- # Filter installed package to keep
- to_keep = deb_kernel(packages, kernel_version, current_version)
-
- # Return installed package to remove
- to_remove = []
- for line in installed['stdout'].splitlines():
- if ' linux-' not in line:
- continue
-
- package = line.split()[1]
- if ((package.startswith('linux-image-') or
- package.startswith('linux-headers-')) and not (
- package.startswith('linux-image-' + to_keep) or
- package.startswith('linux-headers-' + to_keep))):
- to_remove.append(package)
-
- return to_remove
-
-
-def kernel_match(kernel, kernel_spec):
- """
- Check if kernel version match.
- Args:
- kernel (str): Kernel
- kernel_spec (str): Kernel to match.
- Returns:
- bool: True if Kernel match.
- """
- return kernel.startswith(kernel_spec)
-
-
-class FilterModule(object):
- """Return filter plugin"""
-
- @staticmethod
- def filters():
- """Return filter"""
- return {'deb_kernel': deb_kernel,
- 'deb_kernel_pkg': deb_kernel_pkg,
- 'deb_installed_kernel': deb_installed_kernel,
- 'kernel_match': kernel_match}
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml
deleted file mode 100644
index 963fd71756..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/handlers/main.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# file roles/kernel/handlers/main.yaml
-
-- name: Reboot Server
- reboot:
- reboot_timeout: 3600
- tags:
- - reboot-server \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml
deleted file mode 100644
index 431e344fb8..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/main.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# file: roles/kernel/tasks/main.yaml
-
-- name: Inst - Prerequisites
- include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml"
- tags:
- - kernel-inst-prerequisites
-
-- meta: flush_handlers
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml
deleted file mode 100644
index 349c853c11..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_bionic.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-# file: roles/kernel/tasks/ubuntu_bionic.yaml
-
-- name: Get Available Kernel Versions
- command: "apt-cache showpkg linux-headers-*"
- changed_when: false
- register: apt_kernel_list
- tags:
- - kernel-inst
-
-- name: Get installed packages with APT
- command: "dpkg -l"
- changed_when: false
- register: apt_packages_list
- tags:
- - kernel-inst
-
-- name: Set target APT kernel version
- set_fact:
- _kernel: "{{ apt_kernel_list | deb_kernel(
- kernel_version, ansible_kernel) }}"
- tags:
- - kernel-inst
-
-- name: Ensure Packages Versions
- apt:
- name: "{{ apt_kernel_list | deb_kernel_pkg(
- kernel_version, ansible_kernel, ansible_distribution,
- ansible_architecture, item) }}"
- loop: "{{ kernel_packages }}"
- tags:
- - kernel-inst
-
-- name: Ensure Any Other Kernel Packages Are Removed
- apt:
- name: "{{ apt_packages_list | deb_installed_kernel(
- apt_kernel_list, kernel_version, ansible_kernel) }}"
- state: absent
- purge: true
- notify:
- - "Reboot Server"
- tags:
- - kernel-inst
-
-- name: Ensure Any Microcode Is Absent
- apt:
- name: "{{ absent_packages }}"
- state: absent
- purge: true
- tags:
- - kernel-inst \ No newline at end of file
diff --git a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_focal.yaml b/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_focal.yaml
deleted file mode 100644
index 9cbc4d4787..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/kernel/tasks/ubuntu_focal.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
----
-# file: roles/kernel/tasks/ubuntu_focal.yaml
-
-- name: Get Available Kernel Versions
- command: "apt-cache showpkg linux-headers-*"
- changed_when: false
- register: apt_kernel_list
- tags:
- - kernel-inst
-
-- name: Get installed packages with APT
- command: "dpkg -l"
- changed_when: false
- register: apt_packages_list
- tags:
- - kernel-inst
-
-- name: Set target APT kernel version
- set_fact:
- _kernel: "{{ apt_kernel_list | deb_kernel(
- kernel_version, ansible_kernel) }}"
- tags:
- - kernel-inst
-
-- name: Ensure Packages Versions
- apt:
- name: "{{ apt_kernel_list | deb_kernel_pkg(
- kernel_version, ansible_kernel, ansible_distribution,
- ansible_architecture, item) }}"
- loop: "{{ kernel_packages }}"
- tags:
- - kernel-inst
-
-- name: Ensure Any Other Kernel Packages Are Removed
- apt:
- name: "{{ apt_packages_list | deb_installed_kernel(
- apt_kernel_list, kernel_version, ansible_kernel) }}"
- state: absent
- purge: true
- notify:
- - "Reboot Server"
- tags:
- - kernel-inst
-
-- name: Ensure Any Microcode Is Absent
- apt:
- name: "{{ absent_packages }}"
- state: absent
- purge: true
- tags:
- - kernel-inst \ No newline at end of file