script.create
Beschrijving
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.
Parameters
(object/array) Scripts om te maken.
De methode accepteert scripts met het standaardscript eigenschappen.
Retourwaarden
(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.
Voorbeelden
Maak een webhook-script
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:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"3"
]
},
"id": 1
}
Maak een SSH-script aan
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:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"5"
]
},
"id": 1
}
Maak een aangepast script
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:
{
"jsonrpc": "2.0",
"result": {
"scriptids": [
"4"
]
},
"id": 1
}
Bron
CScript::create() in ui/include/classes/api/services/CScript.php.