Newer
Older
---
- name: install deps
yum: name={{ item }} state=installed
sudo: true
with_items:
- gcc
- perl
- wget
- pciutils
- kernel-headers
- kernel-devel
- xterm
- libX11-common
- libX11-devel
- libX11
- xorg-x11-server-common
- xorg-x11-util-macros
- xorg-x11-server-utils
- xorg-x11-font-utils
- xorg-x11-server-Xorg
- xorg-x11-glamor
- xorg-x11-xinit
- xorg-x11-utils
- xorg-x11-xauth
- xorg-x11-proto-devel
- xorg-x11-xkb-utils
- name: install development tools
yum: name="@Development Tools" state=installed
become: true
become_user: root
- name: disable nouveau
template: src=blacklist-nouveau.conf.j2 dest=/etc/modprobe.d/blacklist-nouveau.conf
become: true
become_user: root
- name: template unit for for persistenced
template: src=nvidia-persistenced.service dest=/etc/systemd/system/nvidia-persistenced.service
become: true
become_user: root
- name: create the nvidia-persistenced user
user: name=nvidia-persistenced state=present system=yes shell=/bin/false
become: true
become_user: root
- name: remove nouveau
modprobe: name=nouveau state=absent
become: true
become_user: root
- name: get kernel version
shell: uname -r
register: kernel_version
Chris Hines
committed
check_mode: no
stat: path="/lib/modules/{{ kernel_version.stdout }}/kernel/drivers/video/nvidia.ko"
register: nvidia_driver
- name: set default driver version
set_fact:
installed_driver_version: '0.0'
- name: check nvidia driver version
shell: 'nvidia-smi | grep -Po "Driver Version: \K\S+"'
register: installed_driver_version
when: nvidia_driver.stat.exists
check_mode: no
- name: set install default
set_fact:
install_driver: false
- name: set uninstall default
set_fact:
Chris Hines
committed
uninstall_driver: false
- name: set install
set_fact:
install_driver: true
Chris Hines
committed
when: not nvidia_driver.stat.exists or not installed_driver_version.stdout == nvidia_version
- name: set uninstall
set_fact:
uninstall_driver: true
Chris Hines
committed
when: nvidia_driver.stat.exists and not installed_driver_version.stdout == nvidia_version
- name: stop the persistence daemon
service: name=nvidia-persistenced state=stopped
become: true
become_user: root
when: uninstall_driver
Chris Hines
committed
- name: kill any X processes
shell: ps ax | grep "X :0" | grep -v grep | cut -f 1 -d " " | xargs -I{} kill -9 {}
become: true
become_user: root
when: uninstall_driver
get_url: url=http://consistency0/src/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run dest=/tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run
become: true
become_user: root
#- name: Copy boot file
# template: src=grub.conf.j2 dest=/boot/grub/grub.conf
# sudo: true
#
#- name: Copy X config file
# template: src=xorg.conf.j2 dest=/etc/X11/xorg.conf
# sudo: true
- name: Copy xserver file
template: src=xserver.j2 dest=/etc/pam.d/xserver
sudo: true
shell: chmod 755 /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run; /tmp/NVIDIA-Linux-x86_64-{{ nvidia_version }}.run --silent
- name: set the GOM
shell: nvidia-smi --gom=0
become: true
become_user: root
- name: enable persistenced on boot
service: name=nvidia-persistenced state=started enabled=yes
become: true
become_user: root
- name: Configure xorg.conf with nvidia-xconfig so xorg.conf matches gpu number
Chris Hines
committed
shell: /usr/bin/nvidia-xconfig -a --use-display-device=none --preserve-busid
become: true
become_user: root
args:
creates: /etc/X11/xorg.conf
Chris Hines
committed
#- name: Template xorg.conf for nodes with one GPU
# template: src=xorg.conf.j2 dest=/etc/X11/xorg.conf
# become: true
# become_user: root
# when: template_xorgconf is defined and template_xorgcon
- name: run nvidia-xconf-gen
script: scripts/nvidia-xconf-gen.py
register: nvidiacards
- name: set env for nvidia_card_lists
set_fact:
nvidiacardslist: "{{ nvidiacards.stdout | from_json }}"
- name: generate nvidia-xorg-conf
sudo: true
template:
src: xorg.conf.j2
dest: "{{ item['filename'] }}"
with_items: "{{ nvidiacardslist }}"