object script.create(object/array-scripts)
Met deze methode kunnen nieuwe scripts worden gemaakt.
Deze methode is alleen beschikbaar voor het gebruikerstype Superbeheerder. Machtigingen om de methode aan te roepen kunnen worden ingetrokken in de instellingen van de gebruikersrol. Zien Gebruiker rollen voor meer informatie.
(object/array)
Scripts om te maken.
De methode accepteert scripts met het standaardscript eigenschappen.
(object)
Retourneert een object dat de ID's van de gemaakte scripts bevat onder de eigenschap 'scriptids'. De volgorde van de geretourneerde ID's komt overeen de volgorde van de doorgegeven scripts.
Maak een webhook-script dat een HTTP-verzoek naar een externe service verzendt.
Verzoek:
{
"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}",
"type": 5,
"timeout": "40s",
"parameters": [
{
"name": "token",
"value": "{$WEBHOOK.TOKEN}"
},
{
"name": "host",
"value": "{HOST.HOST}"
},
{
"name": "v",
"value": "2.2"
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Antwoord:
Maak een SSH-script aan met openbare sleutelauthenticatie dat kan worden uitgevoerd op een host en een contextmenu heeft.
Verzoek:
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "SSH-script",
"command": "mijn script opdracht",
"type": 2,
"username": "John",
"publickey": "pub.key",
"privatekey": "priv.key",
"password": "geheim",
"port": "12345",
"scope": 2,
"menu_path": "Alle scripts/SSH",
"usrgrpid": "7",
"groupid": "4"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Reactie:
Maak een aangepast script waarmee een server opnieuw wordt opgestart. Het script zal vereist schrijftoegang tot de host en geeft een configuratie weer bericht voordat het in de frontend wordt uitgevoerd.
Verzoek:
{
"jsonrpc": "2.0",
"method": "script.create",
"params": {
"name": "Reboot server",
"command": "reboot server 1",
"confirmation": "Are you sure you would like to reboot the server?",
"scope": 2,
"type": 0
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Antwoord:
CScript::create() in ui/include/classes/api/services/CScript.php.