Seite 1 von 1

[GELÖST] scripting: opsi-cli fehler

Verfasst: 01 Aug 2024, 13:07
von busabernhardg
Hallo zusammen,

ich aktualisiere die SW Inventarisierung per fireevent.
Wenn ich den Befehl manuell absetze, dann wird das Event auch ausgelöst:

Code: Alles auswählen

opsi-cli jsonrpc execute hostControl_fireEvent silent_install client1.domain.local
Wenn ich diesen Befehl in einem Script verwende, das die Clients aus einer Datei liest kommt ein Fehler:
╭─ Error ──────────────────────────────────────────────────────────────────────────────╮
│ Opsi rpc error: RPCHostControlMixin.hostControl_fireEvent() takes from 2 to 3 positional arguments but 4 were given │
╰───────────────────────────────────────────────────────────────────────────────────╯
Script:

Code: Alles auswählen

#!/bin/bash
LIST=/tmp/list
while read client
do
  if ping -c 1 $client &> /dev/null
  then
    /usr/bin/opsi-cli jsonrpc execute hostControl_fireEvent silent_install $client
  fi
done < $LIST
Liste /tmp/list:
client1.domain.local
client2.domain.local
Mache ich das was falsch oder funktioniert opsi-cli in Scripten nicht?

lg
Bernhard

Re: scripting: opsi-cli fehler

Verfasst: 01 Aug 2024, 13:10
von busabernhardg
Hier noch die Version:
ii opsi-linux-bootimage 20240110-1 all opsi bootimage for netboot tasks.
ii opsi-server-full 4.3.3.3-1 all opsi server
ii opsi-tftpd-hpa 5.2.8-80 amd64 HPA's tftp server
ii opsi-utils 4.3.6.2-1 amd64 Utilities for working with opsi
ii opsi-webgui 4.3.31-1 all opsi webgui
ii opsiconfd 4.3.18.18-1 amd64 opsi configuration service
ii opsipxeconfd 4.3.3.4-1 amd64 opsi pxe configuration service

scripting: opsi-cli fehler

Verfasst: 01 Aug 2024, 14:27
von busabernhardg
Habe die Liste mit den Clientnamen nun so aufgebaut, dann funktionierts:
client1.domain.local client2.domain.local ....
Das passende Script dazu:

Code: Alles auswählen

#!/bin/bash
LIST="$(cat /tmp/list)"
for client in $LIST; do
  if ping -c 1 $client &> /dev/null
  then
    /usr/bin/opsi-cli jsonrpc execute hostControl_fireEvent silent_install $client
  fi
done