Add base plays for all hosts, nvidia_gpu role, GPU pre-work items
- run.yml: base plays (geerlingguy.security) for jira and git; gpu01 play with security + docker + nvidia_gpu - roles/nvidia_gpu: driver pinned >=580 (Blackwell), CUDA repo, container toolkit incl. the nvidia-ctk runtime configure step - manuals/20260714-nvidia-driver-install.md: dated per convention, corrected (pinned -server driver instead of autoinstall+cuda-drivers mix, toolkit optional, added missing nvidia-ctk/docker restart step) - gpu01 folder: planning docs under notes/, runbooks under manuals/, scripts/; convention documented in CLAUDE.md - scripts/share-analysis.ps1: read-only SMB share analysis for the Windows server (projektplan §2.1) - TODO.md: Phase-0 pre-work items from the projektplan Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# Manual nvidia driver, cuda repo and container toolkit
|
||||
|
||||
Automated by the Ansible role `ansible/roles/nvidia_gpu` — this manual documents the steps.
|
||||
|
||||
**Disable Secure Boot in BIOS first** (unsigned kernel modules won't load otherwise).
|
||||
|
||||
## NVIDIA driver
|
||||
|
||||
Check if GPUs are recognized by the base OS:
|
||||
```bash
|
||||
sudo lspci | grep -i nvidia
|
||||
```
|
||||
|
||||
Which should show some output if it finds nvidia devices.
|
||||
|
||||
Search for available drivers for your GPUs:
|
||||
```bash
|
||||
sudo ubuntu-drivers devices
|
||||
```
|
||||
|
||||
Install the driver pinned. The RTX PRO 6000 (Blackwell) needs **driver >= 580**;
|
||||
use the `-server` variant and prefer a pinned install over `ubuntu-drivers autoinstall`
|
||||
so the choice is explicit and reproducible (re-check for a newer branch at install time):
|
||||
```bash
|
||||
sudo apt install -y nvidia-driver-580-server
|
||||
```
|
||||
|
||||
> Note: do **not** additionally install `cuda-drivers` from the NVIDIA repo —
|
||||
> that would mix the Ubuntu-archive driver with the NVIDIA-repo driver and the
|
||||
> two can conflict. Pick one source; we use the Ubuntu archive.
|
||||
|
||||
Reboot the system for changes to take effect:
|
||||
```bash
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Show GPU stats with:
|
||||
```bash
|
||||
nvidia-smi
|
||||
```
|
||||
|
||||
## CUDA repository (toolkit optional)
|
||||
|
||||
Add the NVIDIA CUDA apt repository:
|
||||
|
||||
```bash
|
||||
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
|
||||
sudo dpkg -i cuda-keyring_1.1-1_all.deb
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
The full CUDA toolkit is **not needed** for Docker-based workloads (vLLM etc. —
|
||||
the driver plus container toolkit suffice). Only if compiling on the host:
|
||||
```bash
|
||||
sudo apt install -y cuda-toolkit # meta package, pulls the current release
|
||||
```
|
||||
|
||||
## Container toolkit
|
||||
|
||||
Install the Nvidia Container toolkit:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
|
||||
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
|
||||
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
|
||||
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
|
||||
sudo apt update
|
||||
sudo apt install -y nvidia-container-toolkit
|
||||
```
|
||||
|
||||
Configure Docker to use the NVIDIA runtime (writes `/etc/docker/daemon.json`) and restart it —
|
||||
without this step `docker run --gpus all` fails:
|
||||
```bash
|
||||
sudo nvidia-ctk runtime configure --runtime=docker
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
Test a simple cuda container and nvidia-smi command inside:
|
||||
```bash
|
||||
docker run --rm --gpus all nvidia/cuda:13.0.0-base-ubuntu24.04 nvidia-smi
|
||||
```
|
||||
Reference in New Issue
Block a user