Seite 1 von 1

Opsi übernimmt Beschreibung des PC nicht

Verfasst: 19 Sep 2023, 12:21
von Rzpertt
Hallo,

bei allen neueren Hosts ist das Feld Beschreibung leer.
Kann ich die Daten irgentwo nachholen?
Im AD und auch auf jedem Host ist eine Beschreibung hinterlegt.

Wenn ich die nicht nachträglich holen kann, könnte ich eine Hostliste exportieren, editieren und wieder importieren?

danke

Re: Opsi übernimmt Beschreibung des PC nicht

Verfasst: 20 Sep 2023, 21:38
von Jan.Schmidt
Hi,
bei allen neueren Hosts ist das Feld Beschreibung leer.
viele Wege führen nach rom - evtl hat dein Vorgänger sowas wie das da irgendwo gebaut?

Code: Alles auswählen

#!/bin/bash

OLDIFS=$IFS
IFS=','
while read host description
do 
       opsi-admin -d method setHostDescription "$host" "$description"
done < "/pfad/deine.csv
IFS=$OLDIFS

Re: Opsi übernimmt Beschreibung des PC nicht

Verfasst: 25 Sep 2023, 10:08
von Rzpertt
danke, muss die csv ein bestimmtes Format haben?
Er hängt immer am ende die nächste Zeile mit dran, daher sind das 4 Felder und nicht nur 2

Code: Alles auswählen

' 'bladtf-cd0n.bla.de;0.117- User1': setHostDescription() takes 3 positional arguments but 4 were given   (opsiadmin.py:795)ki
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 792, in execute
  File "opsiutils/opsiadmin.py", line 1220, in execute
TypeError: setHostDescription() takes 3 positional arguments but 4 were given
' 'bladtf-cd0n.bla.de;0.117- User1': setHostDescription() takes 3 positional arguments but 4 were given   (opsiadmin.py:405)ki
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 792, in execute
  File "opsiutils/opsiadmin.py", line 1220, in execute
TypeError: setHostDescription() takes 3 positional arguments but 4 were given

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 393, in shell_main
  File "opsiutils/opsiadmin.py", line 796, in execute
' 'bladtf-cd0n.bla.de;0.117- User1': setHostDescription() takes 3 positional arguments but 4 were given
' 'bladtf-cd0n.bla.de;0.117- User1': setHostDescription() takes 3 positional arguments but 4 were given   (opsiadmin.py:1766)05-Bibliothek Janiszewski
Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 792, in execute
  File "opsiutils/opsiadmin.py", line 1220, in execute
TypeError: setHostDescription() takes 3 positional arguments but 4 were given

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "opsiutils/opsiadmin.py", line 1759, in main
  File "opsiutils/opsiadmin.py", line 406, in shell_main
  File "opsiutils/opsiadmin.py", line 393, in shell_main
  File "opsiutils/opsiadmin.py", line 796, in execute
' 'bladtf-cd0n.bla.de;0.117- User1': setHostDescription() takes 3 positional arguments but 4 were given
im Script selber habe ich eine Echo für die beiden variablen, die werden sauber ausgegeben.
Mir scheint das opsi-admin da ein Problem mit dem while hat

Code: Alles auswählen

#!/bin/bash

OLDIFS=$IFS

while IFS=',' read -r host description
do
        echo H: "$host" D: "$description"
       /usr/bin/opsi-admin -d method setHostDescription "$host" "$description"
done < "/root/opsi/import/opsi_import.csv"
IFS=$OLDIFS

Re: Opsi übernimmt Beschreibung des PC nicht

Verfasst: 26 Sep 2023, 09:33
von Rzpertt
ich hab das mal mit einer for schleife probiert und in der csv die Einträge gleich so eingetragen

"hostname" "beschreibung"
jetzt übernimmt opsi-admin die beiden werte auf jeder Zeile.

Code: Alles auswählen

#!/bin/bash

FILE=/root/opsi/import/ftest.csv
IFS=$'\n'       # make newlines the only separator
set -f          # disable globbing
for i in $(cat < "$FILE")
do
  echo $i
  /usr/bin/opsi-admin -d method setHostDescription $i
  sleep 10
done
Leider fügt das script nun die Zeile in einfache Anführungstriche und nun meckert opsi-admin das ein Argument fehlt.

Code: Alles auswählen

 Failed to execute method setHostDescription '"host.bla.de" "122-Amt"': setHostDescription() missing 1 required positional argument: 'description'   (opsiadmin.py:795)

Re: Opsi übernimmt Beschreibung des PC nicht

Verfasst: 12 Okt 2023, 13:55
von n.doerrer
Das Dollar-Zeichen in dem `IFS=` ist nicht sinnvoll.

Mit dem ursprünglich vorgeschlagenen Skript sollte das klappen, wenn die csv-Datei die Form
<host>,<description>
...
hat.