代码之家  ›  专栏  ›  技术社区  ›  user1980099

我如何安装NVIDIA在非交互的盐栈

  •  0
  • user1980099  · 技术社区  · 8 年前

    我刚开始学盐堆。

    我需要在运行Centos7的Minion服务器上安装Nvidia,只使用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
    

    如何获得有关失败原因的详细信息? 我相信它等待用户输入,但我不知道是什么

    另外,如何在CentOS 7上以非交互方式安装Nvidia?

    谢谢。

    1 回复  |  直到 8 年前
        1
  •  2
  •   vella    8 年前

    通过使用salt call-l debug在本地运行salt状态,可以获得有关salt状态失败原因的详细信息。

    salt-call -l debug state.apply gpu
    

    在您的情况下,您必须知道在Linux上安装NVIDIA驱动程序需要您在没有图形会话的情况下运行安装程序。最简单的方法是检查当前是否在图形会话中(使用systemd),然后删除do multi-user.target,如果是这样:

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

    然后,您可以使用类似于

    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