Opsi übernimmt Beschreibung des PC nicht

Antworten
Rzpertt
Beiträge: 74
Registriert: 15 Jan 2021, 10:41

Opsi übernimmt Beschreibung des PC nicht

Beitrag 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
Jan.Schmidt
Beiträge: 439
Registriert: 08 Jul 2017, 12:02

Re: Opsi übernimmt Beschreibung des PC nicht

Beitrag 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
Rzpertt
Beiträge: 74
Registriert: 15 Jan 2021, 10:41

Re: Opsi übernimmt Beschreibung des PC nicht

Beitrag 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
Rzpertt
Beiträge: 74
Registriert: 15 Jan 2021, 10:41

Re: Opsi übernimmt Beschreibung des PC nicht

Beitrag 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)
Benutzeravatar
n.doerrer
uib-Team
Beiträge: 267
Registriert: 23 Okt 2020, 16:11

Re: Opsi übernimmt Beschreibung des PC nicht

Beitrag 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.
Antworten