script.create
Beschreibung
object script.create(object/array scripts)
Diese Methode ermöglicht das Erstellen neuer Skripte.
Diese Methode ist nur für den Benutzertyp Super admin verfügbar. Die Berechtigung zum Aufrufen der Methode kann in den Einstellungen der Benutzerrolle entzogen werden. Siehe Benutzerrollen für weitere Informationen.
Parameter
(object/array) Zu erstellende Skripte.
Die Methode akzeptiert Skripte mit den standardmäßigen Skript-Eigenschaften.
Rückgabewerte
(object) Gibt ein Objekt zurück, das die IDs der erstellten Skripte
unter der Eigenschaft scriptids enthält. Die Reihenfolge der zurückgegebenen IDs entspricht
der Reihenfolge der übergebenen Skripte.
Beispiele
Ein webhook-Skript erstellen
Erstellen Sie ein webhook-Skript, das eine HTTP-Anfrage an einen externen Dienst sendet.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "Webhook script",
"command": "try {\n var request = new HttpRequest(),\n response,\n data;\n\n request.addHeader('Content-Type: application/json');\n\n response = request.post('https://localhost/post', value);\n\n try {\n response = JSON.parse(response);\n }\n catch (error) {\n response = null;\n }\n\n if (request.getStatus() !== 200 || !('data' in response)) {\n throw 'Unexpected response.';\n }\n\n data = JSON.stringify(response.data);\n\n Zabbix.log(3, '[Webhook Script] response data: ' + data);\n\n return data;\n}\ncatch (error) {\n Zabbix.log(3, '[Webhook Script] script execution failed: ' + error);\n throw 'Execution failed: ' + error + '.';\n}",
"scope": 1,
"type": 5,
"timeout": "40s",
"parameters": [
{
"name": "token",
"value": "{$WEBHOOK.TOKEN}"
},
{
"name": "host",
"value": "{HOST.HOST}"
},
{
"name": "v",
"value": "2.2"
}
]
},
"id": 1
}
Antwort:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"3"
]
},
"id": 1
}
Ein SSH-Skript erstellen
Erstellen Sie ein SSH-Skript mit Public-Key-Authentifizierung, das auf einem Host ausgeführt werden kann und ein Kontextmenü hat.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "SSH script",
"command": "my script command",
"type": 2,
"authtype": 1,
"username": "John",
"publickey": "pub.key",
"privatekey": "priv.key",
"password": "secret",
"port": "12345",
"scope": 2,
"menu_path": "All scripts/SSH",
"usrgrpid": "7",
"groupid": "4"
},
"id": 1
}
Antwort:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"5"
]
},
"id": 1
}
Ein benutzerdefiniertes Skript erstellen
Erstellen Sie ein benutzerdefiniertes Skript, das einen Server neu startet. Das Skript benötigt Schreibzugriff auf den Host und fordert den Benutzer zu manueller Eingabe auf. Nach erfolgreicher Übermittlung der Eingabe zeigt das Skript eine Bestätigungsmeldung im Frontend an.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "Reboot server",
"command": "reboot server {MANUALINPUT}",
"type": 0,
"scope": 2,
"confirmation": "Are you sure you would like to reboot the server {MANUALINPUT}?",
"manualinput": 1,
"manualinput_prompt": "Which server you want to reboot?",
"manualinput_validator": "[1-9]",
"manualinput_validator_type": 0,
"manualinput_default_value": "1"
},
"id": 1
}
Antwort:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"4"
]
},
"id": 1
}
Ein Skript vom Typ URL erstellen
Erstellen Sie ein Skript vom Typ URL für den Geltungsbereich Host, das im selben Fenster geöffnet wird und einen Bestätigungstext hat.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "URL script",
"type": 6,
"scope": 2,
"url": "http://zabbix/ui/zabbix.php?action=host.edit&hostid={HOST.ID}",
"confirmation": "Edit host {HOST.NAME}?",
"new_window": 0
},
"id": 1
}
Antwort:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"56"
]
},
"id": 1
}
Ein Skript vom Typ URL mit manueller Eingabe erstellen
Erstellen Sie ein Skript vom Typ URL für den Ereignisbereich, das in einem neuen Fenster geöffnet wird und eine manuelle Eingabe hat.
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "URL-Skript mit manueller Eingabe",
"type": 6,
"scope": 4,
"url": "http://zabbix/ui/zabbix.php?action={MANUALINPUT}",
"new_window": 1,
"manualinput": 1,
"manualinput_prompt": "Wählen Sie eine zu öffnende Seite aus:",
"manualinput_validator": "dashboard.view,script.list,actionlog.list",
"manualinput_validator_type": 1
},
"id": 1
}
Antwort:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"57"
]
},
"id": 1
}
Quelle
CScript::create() in ui/include/classes/api/services/CScript.php.