Rolle: r8152 (#88)

at für alle

at entfernt

aufräumen

when aktiviert

aufräumen

entferne reboot job

aufgeräumt

script durch reboot ersetzt

reboot script für safekeeping

doku

depmod noch nhotwendig

rolle nur mit explizit gesetzten parameter

doku

reboot vars angepasst

doku

aufgeräumt

nur wenn nicht schon da

funktiiniert grundlegend

Co-authored-by: Michael Grote <michael.grote@posteo.de>
Reviewed-on: mg/ansible#88
Co-Authored-By: mg <mg@noreply.git.mgrote.net>
Co-Committed-By: mg <mg@noreply.git.mgrote.net>
This commit is contained in:
Michael Grote 2021-05-10 14:26:39 +02:00
parent 3a34d5841f
commit 27a1a65608
12 changed files with 142 additions and 1 deletions

View file

@ -122,6 +122,7 @@
- acl - acl
- vim - vim
- rsync - rsync
- at
programs_only_physical: programs_only_physical:
- hddtemp - hddtemp
- ipmitool - ipmitool

View file

@ -46,3 +46,5 @@
### mgrote.apcupsd ### mgrote.apcupsd
apcupsd_nis_master: false apcupsd_nis_master: false
apcupsd_nis_master_hostname: pve2.grote.lan apcupsd_nis_master_hostname: pve2.grote.lan
### mgrote.r8152_kernel_module
r8152_module_needed: true

View file

@ -46,3 +46,5 @@
### mgrote.apcupsd ### mgrote.apcupsd
apcupsd_nis_master: false apcupsd_nis_master: false
apcupsd_nis_master_hostname: pve2.grote.lan apcupsd_nis_master_hostname: pve2.grote.lan
### mgrote.r8152_kernel_module
r8152_module_needed: true

View file

@ -5,7 +5,7 @@
roles: roles:
- { role: robertdebock.bootstrap, tags: "bootstrap", become: yes} - { role: robertdebock.bootstrap, tags: "bootstrap", become: yes}
- { role: ryandaniels.create_users, tags: "user", become: yes} - { role: ryandaniels.create_users, tags: "user", become: yes}
- { role: mgrote.r8152_kernel_module }
vars: vars:
### reobertdebock.bootstrap ### reobertdebock.bootstrap
bootstrap_user: mg bootstrap_user: mg

View file

@ -0,0 +1,5 @@
---
- hosts: all
become: yes
roles:
- { role: mgrote.r8152_kernel_module }

View file

@ -15,3 +15,5 @@
- all - all
galaxy_tags: galaxy_tags:
- system - system
collections:
- community.general

View 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)

View 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

View file

@ -0,0 +1,3 @@
---
collections:
- community.general

View 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

View 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 (taks 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)