Как я могу установить NVIDIA в неинтерактивном режиме от SaltStack - PullRequest
0 голосов
/ 26 июня 2018

Я новичок в SaltStack.

Мне нужно установить NVIDIA на сервер minion с CentOS 7 только с SaltStack.

В файле gpu / init.sls:

install_nvidia:
  cmd.script:
    - source: salt://gpu/files/NVIDIA-Linux-x86_64-375.20.run
    - user: root
    - group: root
    - shell: /bin/bash
    - args: -a

Я бегу:

sudo salt minion_name state.apply gpu

Я получаю ошибку:

...
 stderr:
                  Error opening terminal: unknown.
...
...
Summary for minion_name
------------
Succeeded: 0 (changed=1)
Failed:    1

Как я могу получить более подробную информацию о причине, по которой это не удалось? Я полагаю, что ожидание ввода пользователя, но я не знаю, что

Также, как я могу установить NVIDIA на CentOS 7 неинтерактивным способом?

Спасибо.

1 Ответ

0 голосов
/ 27 июня 2018

Вы можете получить более подробную информацию о том, почему состояние Salt не удалось, запустив его локально, используя отладку salt-call -l.

salt-call -l debug state.apply gpu

В вашем случае вы должны знать, что для установки драйвера NVIDIA в Linux вам потребуется запустить программу установки без графического сеанса. Самый простой способ сделать это - проверить, находитесь ли вы в данный момент в графическом сеансе (с systemd), а затем удалить do multi-user.target, если это так:

enter-multiuser:
  cmd.run:
    - name: systemctl isolate multi-user.target
    - onlyif: systemctl status graphical.target

Затем вы можете установить драйвер NVIDIA в режиме без вывода сообщений, используя что-то вроде

gpu-prerequisites:
  pkg.installed:
    - pkgs:
      - kernel-devel

download-installer:
  file.managed:
    - name: /tmp/NVIDIA-Linux-x86_64-375.20.run
    - source: salt://gpu/files/NVIDIA-Linux-x86_64-375.20.run


install-driver:
  cmd.run:
    - name: /tmp/NVIDIA-Linux-x86_64-375.20.run -a -s -Z -X
    - require:
      - file: download-installer
      - pkg: gpu-prequisites

start-graphical:
  cmd.run: 
    - name: systemctl start graphical.target
    - unless:  systemctl status graphical.target
    - watch:
      - cmd: install-driver
...