Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

OTRS 5 – CMDB API Script mit Webservices

Veröffentlicht am 27. Januar 2017 von Christian Piazzi 2 Kommentare , Aktualisiert am 27. Januar 2017
Geschätzte Lesezeit: 1 Minute

CMDBDa ich beruflich sehr viel mit OTRS zu tun habe, will ich heute mal ein kleines Skript zeigen, womit man die API der OTRS CMDB testen kann. Dies kann unter anderen hilfreich sein, wenn man Probleme mit Fremdmodulen hat, die Informationen in die OTRS CMDB hinzufügen oder auslesen will.

Webservice

Um die API Funktion zur Verfügung zu stellen, muss diese mit einem Webservice bereitgestellt werden. So einen Webservice müssen wir nun anlegen. Dafür gehen wir in dem Admin Bereich von OTRS. Hier finden wir im Bereich Systemverwaltung den Punkt Webservices.

OTRS-Webservice

Auf der linken Seite wählen wir Wevservice hinzufüge.

OTRS-Webservice-hinzufuegen

Hier können wir nun den Webservice wie auf dem Bild zu sehen einrichten

OTRS-Webservice-Konfiguration

Anschließend wird der Webservice gespeichert und erneut geöffnet. Wir haben nun bei dem Punkt Netzwerk-Transport einen Konfigurationsbutton. Dieser wird jetzt ausgewählt.

OTRS-Webservice-Netwerk-konfiguration

In dem Fenster das sich jetzt öffnet, muss die Einstellung entsprechend dem Bild gesetzt werden.

OTRS-Webservice-Konfiguration-HTTP-REST

Jetzt kann alles gespeichert werden.

Das Skript

Bei dem Skript zum Testen der durch den Webservice bereitgestellten API Funktion handelt es sich um ein PHP Skript. Dieses soll uns alle Objekte der CMDB Kategorie Computer zurückgeben (Wenn welche angelegt sind).

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!--?<span class="hiddenSpellError">php</span>
//OTRS URL http:///otrs/nph-genericinterface.pl/Webservice////
$otrs_url = 'http://192.168.10.63/otrs/nph-genericinterface.pl/Webservice/TestService/SearchCI/root@localhost/test123';
 
$l_data = array(
       'ConfigItem' => [
               'Class'        => 'Computer',
       ]
);
$p_data = json_encode($l_data);
 
/* CURL Request */
$l_curl_handle = curl_init( $otrs_url );
curl_setopt($l_curl_handle, CURLOPT_POST, 1);-->
curl_setopt($l_curl_handle, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($l_curl_handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($l_curl_handle, CURLOPT_POSTFIELDS, $p_data);
curl_setopt($l_curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($l_curl_handle, CURLOPT_USERAGENT, 'API Tester');
curl_setopt($l_curl_handle, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json' ));
 
$l_content = curl_exec($l_curl_handle);
 
curl_close($l_curl_handle);
print_r($l_content);
$l_content = json_decode($l_content);
 
echo '

1
2
3
';
var_dump($l_content);
echo '

PHP
1
'; ?>

Wichtig ist hierbei eigentlich nur die dritte Zeile. Diese muss entsprechend des Kommentars ausgefüllt werden. Anschließend kann das Skript ausgeführt werden.

Die Ausgabe sollte dann so aussehen, wenn es zwei Computer.

PHP
1
2
php cmdbSearch.php
{"ConfigItemIDs":["1","2"]}

1
2
3
4
5
6
7
8
9
object(stdClass)#1 (1) {
  ["ConfigItemIDs"]=>
  array(2) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
  }
}

Eine aktuelle Version des Skriptes findet ihr immer im entsprechenden Github Repo: https://github.com/Modius22/OTRS-Scripts

Kategorie: Programmierung Tags: API, cmdb, Connect, DevOps, OTRS, PHP

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Kommentare

  1. Roy meint

    11. Oktober 2017 um 16:51

    Ich empfehle nicht Benutzernamen und Passwort, wie vorgeschlagen, in der URL zu übergeben. Die wird nämlich i.d.R. in den Logdateien des Webserves gespeichert. Es sollte problemlos möglich sein mit den Sessions der Ticketconnectors zu arbeiten.

    Antworten
    • Christian Piazzi meint

      13. Oktober 2017 um 07:57

      Hallo Roy,

      bei dem Einsatz eines produktiven Skriptes Stimme ich dir da zu. Dieses dient nur dazu, Fehler zu debuggen.

      Gruß
      Christian

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Beliebte Artikel

  • Docker Container – anzeigen, starten, stoppen und löschen
  • Nextcloud https mit self-signed Zertifikat einrichten
  • ioBroker auf dem Raspberry Pi installieren und konfigurieren
  • Fritzbox 7490 – VPN mit dynDNS einrichten
  • systemctl / systemd richtig verwenden

Neueste Kommentare

  • Thorben bei Nextcloud https mit self-signed Zertifikat einrichten
  • Sepp bei Automatisierte Dokumentation von Python Projekten mit sphinx
  • Sascha bei Arduino – 4fach 7-Segmentanzeige mit Schieberegister
  • Sylvio Seidel bei Nextcloud https mit self-signed Zertifikat einrichten
  • Markus Beier bei ioBroker auf dem Raspberry Pi installieren und konfigurieren

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2022 · Outreach Pro on Genesis Framework · WordPress · Anmelden