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