Назад | Перейти на главную страницу

Как обнаружить NVIDIA GPU с помощью Puppet

У меня есть некоторые задачи, которые я хочу выполнять только на машинах с графическими процессорами NVIDIA. Есть ли хороший способ с помощью Puppet определить, есть ли у конкретного агента графический процессор NVIDIA или нет? Я могу сделать это в bash, проверив, существует ли / usr / bin / nvidia-smi, но я не уверен, как мне это сделать в Puppet. Также, если есть лучший способ сделать это в bash вместо этого, дайте мне знать.

Вы должны создать заказной факт который либо проверяет наличие /usr/bin/nvidia-smi (если этого достаточно), например:

Facter.add(:nvidia_gpu) do
  confine :kernel => 'Linux'
  setcode do
    FileTest.executable?('/usr/bin/nvidia-smi')
  end
end

или, возможно, для более тщательной проверки, существует ли конкретное устройство PCI, отображается ли оно как одно, используя либо вывод lspci или гуляя по /sys/bus/pci каталог.

Затем в манифестах Puppet вы можете использовать значение $facts['nvidia_gpu'] контролировать то, что вы делаете.