ansible playbook - proxmox gpu passthrough
commit
8be71a0094
@ -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 @@
|
|||||||
|
---
|
||||||
@ -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…
Reference in New Issue