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
|
||||
become: yes
|
||||
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