У меня есть некоторые задачи, которые я хочу выполнять только на машинах с графическими процессорами 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']
контролировать то, что вы делаете.