script.create

Descripción

object script.create(object/array scripts)

Este método permite crear nuevos scripts.

Este método solo está disponible para el tipo de usuario Super administrador. Los permisos para llamar al método se pueden revocar en la configuración de roles de usuario. Ver Roles de usuario para obtener más información.

Parámetros

(objeto/matriz) Scripts para crear.

El método acepta scripts con las propiedades estándar del script.

Valores de retorno

(objeto) Devuelve un objeto que contiene los ID de los scripts creados bajo la propiedad scriptids. El orden de los ID devueltos coincide. el orden de los scripts pasados.

Ejemplos

Crear un script de webhook

Cree un script de webhook que envíe una solicitud HTTP a un servicio externo.

Solicitud:

{
           "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"
                   }
               ]
           },
           "id": 1
       }

Respuesta:

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

Crear un script SSH

Cree un script SSH con autenticación de clave pública que se pueda ejecutar en un equipo y tiene un menú contextual.

Solicitud:

{
           "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"
           },
           "id": 1
       }

Respuesta:

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

Crear un script personalizado

Cree un script personalizado que reiniciará un servidor. El guión requiere acceso de escritura al equipo y mostrará un mensaje de configuración antes de ejecutarlo en la interfaz.

Solicitud:

{
           "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
           },
           "id": 1
       }

Respuesta:

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

Crear un script de tipo URL

Cree un script de tipo URL que para el alcance del equipo permanezca en la misma ventana y tenga un texto de confirmación.

Solicitud:

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

Respuesta:

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

Fuente

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