Rex-GPU
view release on metacpan or search on metacpan
lib/Rex/GPU/NVIDIA.pm view on Meta::CPAN
run "zypper addrepo --refresh https://download.nvidia.com/opensuse/leap/16.0/ nvidia-gfx 2>/dev/null",
auto_die => 0;
}
else {
my $leap_version = sprintf("%.1f", $version / 10); # 156 -> 15.6
Rex::Logger::info(" Adding NVIDIA GFX repo (opensuse15, Leap $leap_version)...");
run "zypper rr nvidia-gfx 2>/dev/null || true", auto_die => 0;
run "zypper addrepo --refresh https://download.nvidia.com/opensuse/leap/$leap_version/ nvidia-gfx 2>/dev/null",
auto_die => 0;
}
run "zypper --gpg-auto-import-keys refresh nvidia-gfx 2>/dev/null", auto_die => 0;
# Use the meta package â it co-installs kmp-default + userspace at the same version,
# preventing the split that causes "Driver/library version mismatch" with nvidia-smi.
# Pre-signed kmp packages don't need kernel-devel/headers.
my $meta_pkg = $major >= 16
? "nvidia-open-driver-G07-signed-kmp-meta"
: "nvidia-open-driver-G06-signed-kmp-meta";
Rex::Logger::info(" Installing $meta_pkg...");
run "zypper install -y $meta_pkg", auto_die => 0;
lib/Rex/GPU/NVIDIA.pm view on Meta::CPAN
}
}
# ============================================================
# Container toolkit installation
# ============================================================
sub _install_toolkit_debian {
pkg ["curl", "gnupg"], ensure => "present";
run "curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg 2>/dev/null",
auto_die => 0;
file "/etc/apt/sources.list.d/nvidia-container-toolkit.list",
content => 'deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /' . "\n";
run "apt-get -o DPkg::Lock::Timeout=120 update -q", auto_die => 0;
# DPkg::Lock::Timeout=120: wait for apt-daily.timer lock that fires after reboot.
run "DEBIAN_FRONTEND=noninteractive apt-get -o DPkg::Lock::Timeout=120 install -y nvidia-container-toolkit", auto_die => 0;
my $check = run "dpkg -l nvidia-container-toolkit 2>/dev/null | grep -q '^ii'", auto_die => 0;
die "nvidia-container-toolkit not installed\n" if $? != 0;
}
sub _install_toolkit_redhat {
run "curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | tee /etc/yum.repos.d/nvidia-container-toolkit.repo",
lib/Rex/GPU/NVIDIA.pm view on Meta::CPAN
}
sub _install_toolkit_suse {
# The .repo file URL is yum/dnf format â zypper needs the baseurl directly.
# Remove any stale entry (possibly added with the wrong URL) before re-adding.
my $arch = run "uname -m", auto_die => 0;
chomp $arch;
$arch ||= 'x86_64';
run "zypper rr nvidia-container-toolkit 2>/dev/null || true", auto_die => 0;
run "rpm --import https://nvidia.github.io/libnvidia-container/gpgkey 2>/dev/null",
auto_die => 0;
run "zypper addrepo --refresh https://nvidia.github.io/libnvidia-container/stable/rpm/$arch nvidia-container-toolkit 2>/dev/null",
auto_die => 0;
run "zypper --gpg-auto-import-keys refresh nvidia-container-toolkit 2>/dev/null",
auto_die => 0;
run "zypper install -y nvidia-container-toolkit", auto_die => 0;
}
# ============================================================
# Containerd configuration
# ============================================================
sub _configure_containerd_rke2 {
( run in 0.595 second using v1.01-cache-2.11-cpan-df04353d9ac )