script.create

Beschrijving

object script.create(object/array scripts)

Met deze methode kun je nieuwe scripts maken.

Deze methode is alleen beschikbaar voor gebruikers van het type Super admin. Toestemming om de methode te gebruiken kan worden ingetrokken in de gebruikersrol-instellingen. Zie Gebruikersrollen 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

Create een webhook-script

Maak een webhook-script aan dat een HTTP-verzoek stuurt naar een externe service.

Aanvraag:

{
           "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 'Onverwachte respons.';\n }\n\n data = JSON.stringify(response.data);\n\n Zabbix.log(3, '[Webhook Script] responsgegevens: ' + data);\n\n return data;\n}\n catch (error) {\n Zabbix.log(3, '[Webhook Script] uitvoering script mislukt: ' + error);\n throw 'Uitvoering mislukt: ' + error + '.';\n}",
               "type": 5,
               "timeout": "40s",
               "parameters": [
                   {
                       "name": "token",
                       "value": "{$WEBHOOK.TOKEN}"
                   },
                   {
                       "name": "host",
                       "value": "{HOST.HOST}"
                   },
                   {
                       "name": "v",
                       "value": "2.2"
                   }
               ]
           },
           "id": 1
       }

Reactie:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "3"
               ]
           },
           "id": 1
       }

Maak een SSH-script aan

Maak een SSH-script aan met authenticatie via een openbare sleutel dat kan worden uitgevoerd op een host en een contextmenu heeft.

Aanvraag:

{
           "jsonrpc": "2.0",
           "method": "script.create",
           "params": {
               "name": "SSH-script",
               "command": "mijn scripts 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"
           },
           "id": 1
       }

Reactie:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "5"
               ]
           },
           "id": 1
       }

Aangepast script maken

Maak een aangepast script aan dat een server opnieuw opstart. Het script vereist schrijftoegang tot de host en zal een configuratiebericht weergeven voordat het wordt uitgevoerd in de frontend.

Aanvraag:

{
           "jsonrpc": "2.0",
           "method": "script.create",
           "params": {
               "name": "Server herstarten",
               "command": "server 1 herstarten",
               "confirmation": "Weet u zeker dat u de server wilt herstarten?",
               "scope": 2,
               "type": 0
           },
           "id": 1
       }

Reactie:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "4"
               ]
           },
           "id": 1
       }

URL-type script maken

Maak een URL-type script aan voor hostbereik dat in hetzelfde venster blijft en bevestigingstekst heeft.

Aanvraag:

{
           "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": "Bewerk host {HOST.NAME}?",
               "new_window": 0
           },
           "id": 1
       }

Reactie:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "56"
               ]
           },
           "id": 1
       }

Bron

CScript::create() in ui/include/classes/api/services/CScript.php.