script.create

Opis

object script.create(object/array scripts)

Ta metoda umożliwia tworzenie nowych skryptów.

Ta metoda jest dostępna tylko dla użytkownika typu Super admin. Uprawnienia do wywołania tej metody mogą zostać cofnięte w ustawieniach roli użytkownika. Więcej informacji można znaleźć w sekcji Role użytkowników.

Parametry

(object/array) Skrypty do utworzenia.

Metoda akceptuje skrypty ze standardowymi właściwościami skryptu.

Zwracane wartości

(object) Zwraca obiekt zawierający identyfikatory utworzonych skryptów we właściwości scriptids. Kolejność zwróconych identyfikatorów odpowiada kolejności przekazanych skryptów.

Przykłady

Utwórz skrypt webhook

Utwórz skrypt webhook, który wysyła żądanie HTTP do zewnętrznej usługi.

Żądanie:

{
    "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}",
        "scope": 1,
        "type": 5,
        "timeout": "40s",
        "parameters": [
            {
                "name": "token",
                "value": "{$WEBHOOK.TOKEN}"
            },
            {
                "name": "host",
                "value": "{HOST.HOST}"
            },
            {
                "name": "v",
                "value": "2.2"
            }
        ]
    },
    "id": 1
}

Odpowiedź:

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

Utwórz skrypt SSH

Utwórz skrypt SSH z uwierzytelnianiem kluczem publicznym, który może być wykonywany na hoście i ma menu kontekstowe.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "script.create",
    "params": {
        "name": "SSH script",
        "command": "my script command",
        "type": 2,
        "authtype": 1,
        "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
}

Odpowiedź:

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

Utwórz niestandardowy skrypt

Utwórz niestandardowy skrypt, który zrestartuje serwer. Skrypt będzie wymagał uprawnień do zapisu do hosta i poprosi użytkownika o ręczne wprowadzenie danych. Po pomyślnym przesłaniu danych wejściowych skrypt wyświetli komunikat potwierdzający we frontendzie.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "script.create",
    "params": {
        "name": "Reboot server",
        "command": "reboot server {MANUALINPUT}",
        "type": 0,
        "scope": 2,
        "confirmation": "Are you sure you would like to reboot the server {MANUALINPUT}?",
        "manualinput": 1,
        "manualinput_prompt": "Which server you want to reboot?",
        "manualinput_validator": "[1-9]",
        "manualinput_validator_type": 0,
        "manualinput_default_value": "1"
    },
    "id": 1
}

Odpowiedź:

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

Utwórz skrypt typu URL

Utwórz skrypt typu URL dla zakresu host, który pozostaje w tym samym oknie i ma tekst potwierdzenia.

Żądanie:

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

Odpowiedź:

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

Utwórz skrypt typu URL z ręcznym wprowadzaniem

Utwórz skrypt typu URL dla zakresu zdarzenia, który otwiera się w nowym oknie i ma ręczne wprowadzanie.

Żądanie:

{
    "jsonrpc": "2.0",
    "method": "script.create",
    "params": {
        "name": "Skrypt URL z ręcznym wprowadzaniem",
        "type": 6,
        "scope": 4,
        "url": "http://zabbix/ui/zabbix.php?action={MANUALINPUT}",
        "new_window": 1,
        "manualinput": 1,
        "manualinput_prompt": "Wybierz stronę do otwarcia:",
        "manualinput_validator": "dashboard.view,script.list,actionlog.list",
        "manualinput_validator_type": 1
    },
    "id": 1
}

Odpowiedź:

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

Źródło

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