script.create

Description

object script.create(object/array scripts)

Cette méthode permet de créer de nouveaux scripts.

Cette méthode est seulement disponible pour les utilisateurs du type Super admin. Les autorisations d'appeler la méthode peuvent être révoquées dans les paramètres de rôle d'utilisateur. Voir Rôles utilisateur pour plus d'informations.

Paramètres

(object/array) Scripts à créer.

La méthode accepte les scripts avec les propriétés de script standard.

Valeurs retournées

(object) Retourne un objet contenant les identifiants des scripts créés sous la propriété scriptids. L'ordre des ID retournés correspond à l'ordre des scripts transmis.

Exemples

Créer un script de webhook

Créez un script de webhook qui envoie une requête HTTP à un service externe.

Requête :

{
           "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
       }

Réponse :

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

Créer un script SSH

Créez un script SSH avec une authentification par clé publique pouvant être exécuté sur un hôte et doté d'un menu contextuel.

Requête :

{
           "jsonrpc": "2.0",
           "method": "script.create",
           "params": {
               "name": "SSH script",
               "command": "my script command",
               "type": 2,
               "username": "John",
               "publickey": "pub.key",
               "privatekey": "priv.key",
               "password": "secret",
               "port": "12345",
               "scope": 2,
               "menu_path": "All scripts/SSH",
               "usrgrpid": "7",
               "groupid": "4"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Réponse :

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

Créer un script personnalisé

Créez un script personnalisé qui redémarrera un serveur. Le script nécessitera un accès en écriture à l'hôte et affichera un message de configuration avant de s'exécuter dans le frontend.

Requête :

{
           "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
       }

Réponse :

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

Source

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