dkms (#122)
rolle umbenannt Co-authored-by: Michael Grote <michael.grote@posteo.de> Reviewed-on: mg/ansible#122 Co-Authored-By: mg <mg@noreply.git.mgrote.net> Co-Committed-By: mg <mg@noreply.git.mgrote.net>
This commit is contained in:
parent
84e1d81384
commit
c5af0719aa
7 changed files with 130 additions and 1 deletions
|
@ -2,4 +2,4 @@
|
||||||
- hosts: all
|
- hosts: all
|
||||||
become: yes
|
become: yes
|
||||||
roles:
|
roles:
|
||||||
- { role: mgrote.r8152_kernel_module }
|
- { role: mgrote.r8152_kernel_module_on_off }
|
||||||
|
|
16
roles/mgrote.r8152_kernel_module_on_off/README.md
Normal file
16
roles/mgrote.r8152_kernel_module_on_off/README.md
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
## mgrote.r8152_kernel_module
|
||||||
|
|
||||||
|
### Beschreibung
|
||||||
|
Installiert das Module r8152 für die 2.5G USB-C Ethernetkarte DN3025 von Digitus.
|
||||||
|
Startet den PC neu.
|
||||||
|
|
||||||
|
### Funktioniert auf
|
||||||
|
- [x] ProxMox 6.1
|
||||||
|
|
||||||
|
### Variablen + Defaults
|
||||||
|
see [defaults](./defaults/main.yml)
|
||||||
|
|
||||||
|
``r8152_module_needed`` muss pro Host gesetzt werden.
|
||||||
|
|
||||||
|
### Siehe auch
|
||||||
|
* [Link zum Treiber](https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-usb-3-0-software)
|
11
roles/mgrote.r8152_kernel_module_on_off/defaults/main.yml
Normal file
11
roles/mgrote.r8152_kernel_module_on_off/defaults/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
r8152_filename: r8152.53.56-2.15.0
|
||||||
|
r8152_packages:
|
||||||
|
- pve-headers
|
||||||
|
- build-essential
|
||||||
|
- make
|
||||||
|
r8152_reboot_timeout: 90
|
||||||
|
r8152_pre_reboot_delay: 120
|
||||||
|
r8152_post_reboot_delay: 60
|
||||||
|
r8152_module_needed: false
|
||||||
|
r8152_safekeeping_reboot_delay: 12
|
Binary file not shown.
3
roles/mgrote.r8152_kernel_module_on_off/meta/main.yml
Normal file
3
roles/mgrote.r8152_kernel_module_on_off/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
collections:
|
||||||
|
- community.general
|
83
roles/mgrote.r8152_kernel_module_on_off/tasks/doing.yml
Normal file
83
roles/mgrote.r8152_kernel_module_on_off/tasks/doing.yml
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
---
|
||||||
|
- name: install needed packages
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: "{{ r8152_packages }}"
|
||||||
|
state: present
|
||||||
|
register: aptp
|
||||||
|
|
||||||
|
|
||||||
|
- name: add reboot(for safekeeping)
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.shell: shutdown -r "{{ r8152_safekeeping_reboot_delay }}"
|
||||||
|
|
||||||
|
- name: update apt cache
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: yes
|
||||||
|
register: aptc
|
||||||
|
|
||||||
|
- name: updated installed packages
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.package:
|
||||||
|
upgrade: dist
|
||||||
|
register: apti
|
||||||
|
|
||||||
|
- name: reboot - 1
|
||||||
|
ansible.builtin.reboot:
|
||||||
|
reboot_timeout: "{{ r8152_reboot_timeout }}"
|
||||||
|
pre_reboot_delay: "{{ r8152_reboot_timeout }}"
|
||||||
|
post_reboot_delay: "{{ r8152_post_reboot_delay }}"
|
||||||
|
when:
|
||||||
|
- aptp.changed
|
||||||
|
- apti.changed
|
||||||
|
- aptc.changed
|
||||||
|
|
||||||
|
- name: create dirs
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- "/tmp/r8152/"
|
||||||
|
- "/lib/modules/r8152/{{ r8152_filename }}"
|
||||||
|
|
||||||
|
- name: copy archive
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "files/{{ r8152_filename }}.tar.bz2"
|
||||||
|
dest: "/tmp/r8152/{{ r8152_filename }}.tar.bz2"
|
||||||
|
mode: '0775'
|
||||||
|
|
||||||
|
- name: extract archive
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
src: "/tmp/r8152/{{ r8152_filename }}.tar.bz2"
|
||||||
|
dest: "/lib/modules/r8152/{{ r8152_filename }}"
|
||||||
|
mode: a+x
|
||||||
|
extra_opts: [--strip-components=1] # entfernt die erste Ebene des Archives
|
||||||
|
remote_src: yes #datei liegt also auf dem zielsystem
|
||||||
|
|
||||||
|
- name: make
|
||||||
|
community.general.make:
|
||||||
|
chdir: "/lib/modules/r8152/{{ r8152_filename }}"
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: make install
|
||||||
|
community.general.make:
|
||||||
|
chdir: "/lib/modules/r8152/{{ r8152_filename }}"
|
||||||
|
target: install
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: depmod -a
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.shell: depmod -a
|
||||||
|
|
||||||
|
- name: reboot - 2
|
||||||
|
ansible.builtin.reboot:
|
||||||
|
reboot_timeout: "{{ r8152_reboot_timeout }}"
|
||||||
|
pre_reboot_delay: "{{ r8152_reboot_timeout }}"
|
||||||
|
post_reboot_delay: "{{ r8152_post_reboot_delay }}"
|
||||||
|
|
||||||
|
- name: cancel reboot(for safekeeping)
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.shell: shutdown -c
|
16
roles/mgrote.r8152_kernel_module_on_off/tasks/main.yml
Normal file
16
roles/mgrote.r8152_kernel_module_on_off/tasks/main.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
---
|
||||||
|
- name: check if module is installed - folder
|
||||||
|
become: yes
|
||||||
|
stat:
|
||||||
|
path: "/lib/modules/r8152/{{ r8152_filename }}"
|
||||||
|
register: folder_exists
|
||||||
|
|
||||||
|
- name: check if module is installed - lsmod
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.shell: lsmod
|
||||||
|
register: module_in_lsmod
|
||||||
|
changed_when: False # sorgt dafür das der Task nie als "changed" angezeigt wird
|
||||||
|
|
||||||
|
- name: include tasks (task get skipped if the folder or the module exists or r8152_module_needed == false)
|
||||||
|
include_tasks: doing.yml
|
||||||
|
when: ((folder_exists.stat.exists == False) or (module_in_lsmod.stdout.find('r8152') == -1)) and (r8152_module_needed == true)
|
Loading…
Reference in a new issue