ansible playbook - proxmox gpu passthrough

main
Badanin Maksim 3 years ago
commit 8be71a0094

3
.gitignore vendored

@ -0,0 +1,3 @@
inventory/*.yml
inventory/*.yaml

@ -0,0 +1,12 @@
# Настройка проброса видеркарты
По умолчанию предназначен для видеокарт NVIDIA и процессора Intel.
Для AMD и Radeon возможно потребудтся незначительные доработки.
## Использование
Изменение переменных производится в *group_vars* или *host_vars*:
```yaml
---
```

@ -0,0 +1,2 @@
[defaults]
inventory=./inventory

@ -0,0 +1,6 @@
#---
#all:
# hosts:
# host1:
# ansible_host: 8.8.8.8
# ansible_user: admin

@ -0,0 +1,56 @@
---
- name: passthrough nvidia gpu on intel cpu
hosts: all
tasks:
- name: add iommu in grub
ansible.builtin.lineinfile:
path: /etc/default/grub
regexp: "GRUB_CMDLINE_LINUX_DEFAULT"
line: 'GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt nofb nomodeset initcall_blacklist=sysfb_init"'
register: grub_changed
- name: update grub
ansible.builtin.shell: update-grub
when: grub_changed.changed
register: grub_upgraded
- name: add modules
ansible.builtin.lineinfile:
path: /etc/modules
line: "{{ item }}"
loop:
- vfio
- vfio_iommu_type1
- vfio_pci
- vfio_virqfd
- name: search nvidia gpu id
ansible.builtin.shell: "lspci | grep VGA.*NVIDIA | head -c 5 | xargs -I% lspci -n -s % | cut -c15-23"
register: nvidia_id
changed_when: false
# - name: check result gpu id
# ansible.builtin.debug:
# var: nvidia_id.stdout_lines
- name: add nvidia id to vfio
ansible.builtin.lineinfile:
path: /etc/modprobe.d/vfio.conf
create: true
line: "options vfio-pci ids={{ nvidia_id.stdout_lines[0] }},{{ nvidia_id.stdout_lines[1] }} disable_vga=1"
- name: add blacklist
ansible.builtin.lineinfile:
path: /etc/modprobe.d/blacklist.conf
create: true
line: "{{ item }}"
loop:
- blacklist amdgpu
- blacklist radeon
- blacklist nouveau
- blacklist nvidia
- name: reboot system
ansible.builtin.reboot:
when: grub_upgraded.changed
Loading…
Cancel
Save