知行社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

知行社区 门户 科技频道 编程开发 PHP 查看内容

iTop定制

2018-1-4 11:51| 发布者: 知行| 查看: 11| 评论: 0|原作者: oppo

摘要: iTop API 包含以下功能 web/ HTTP接口 actions/ action-shell-exec调用的脚本 部署步骤 安装iTop插件 itop-extensions/action-shell-exec 按照action-shell-exec的文档配置触发器和动作 部署cmdbApi ...

iTop API


包含以下功能



  • web/ HTTP接口

  • actions/ action-shell-exec调用的脚本


部署步骤



  • 安装iTop插件 itop-extensions/action-shell-exec

  • 按照action-shell-exec的文档配置触发器和动作

  • 部署cmdbApi


actions部分文档


action设置SCRIPT_NAME变量为要执行的php脚本,然后使用一个统一的shell脚本作为包裹脚本来异步调用php脚本. 另外,统一的shell脚本还需要其他统一的变量名(主要方便调试,例如在日志中输出工单id或者服务器主机名),因此iTop设置action parameters时要使用变量名=值的方式定义变量,变量列表如下



















变量名 变量值
SCRIPT_NAME example.php
ID $this->id$(工单)

注意 logs目录需要可写权限,最好将actions目录属主改为php运行账号


action-shell-exec插件介绍


执行脚本的动作, 需要php开启shell_exec函数


demo script(shell)


#!/bin/bash
d=`cd $(dirname $0);pwd`
cd $d
ds=`date +%Y%m%d-%H%M%S`

echo "$ds  $THIS_NAME - $THIS_HOSTNAME"
echo "$ds  $THIS_NAME - $THIS_HOSTNAME" >> demo.log

demo script(php). 需要读取环境变量


#!/usr/bin/php
<?
$THIS_HOSTNAME = getenv("THIS_HOSTNAME");
$THIS_NAME = getenv("THIS_NAME");
echo "$THIS_HOSTNAME $THIS_NAME";
?>

异步任务


假设脚本需要执行很长时间


#!/usr/bin/php
<?
$THIS_HOSTNAME = getenv("THIS_HOSTNAME");
$THIS_NAME = getenv("THIS_NAME");
$log = "php.log";
sleep(15);
file_put_contents($log, "$THIS_HOSTNAME $THIS_NAME\n", FILE_APPEND);
?>

如上代码,实测此时itop前端要等待15至16秒之间,因此考虑用shell脚本包裹一下,实现后台异步执行真正的任务


#!/bin/bash
d=`cd $(dirname $0);pwd`
cd $d
ds=`date +%Y%m%d-%H%M%S`

echo "$ds  $THIS_NAME - $THIS_HOSTNAME"
echo "$ds  $THIS_NAME - $THIS_HOSTNAME" >> demo.log
#./demo.php &   # 这种做法无效,需要下一行那样(启动子脚本,必须要使用&和指定输出(最好是定向到/dev/null)
./demo.php &>/dev/null  &

task对应触发器动作参考


动作


名称,类别,名称,描述,状态,Path,Parameters
ticket_robot,Script execution,ticket_robot,工单操作,生产中,/wwwroot/cmdbApi/actions/demo.sh,SCRIPT_NAME=ticket_robot.php ID=$this->id$

触发器


描述,目标类,状态,类别,过滤器
工单已解决,Ticket,resolved,触发器 (进入一个状态时),SELECT Ticket AS t WHERE t.finalclass IN ('UserRequest','Incident')

api.php


用途


iTop关闭或重开工单接口


参数列表





































参数 说明 备注
action close,reopen
id 工单id
user_satisfaction 1,2,3,4 (1 => 非常满意, 2 => 满意, 3 => 不满意, 4 => 非常不满意) action为close时需要此参数
user_comment action为close时需要此参数
sign 签名 sha1(md5($action . $id . $sk))

返回值







































code 含义
0 成功
100 itop执行错误
101 参数错误,缺少action
102 参数错误,缺少id, user_satisfaction或user_comment
103 参数错误,缺少id
110 action类型错误
130 缺少sign或sign错误

sign生成算法


sha1(md5($action . $id . $sk))


其中客户端SK需要和服务端 etc/config.php中的 $config[zxsq-anti-bbcode-'api'][zxsq-anti-bbcode-'sk'] 保持一致



[nomath]

鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

关于我们|小黑屋|手机版|Archiver|知行技术社区 ( 湘ICP备11020288号-1 )

GMT+8, 2018-1-9 16:17 , Processed in 0.061839 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部