在WHMCS后台可以控制IPMI机器的电源项目...开/关 等.
8 W# X& T3 U4 S. S9 X7 ]5 X要求WHMCS所在机器安装OpenIPMI组件* B0 F/ P4 p6 D0 Y* u6 W
1 ~& A; C+ n& Z6 e8 oyum install OpenIPMI OpenIPMI-tools
- i4 j. M: F: ^; z! o% Z! e) o6 `6 n* z: p* `
而且PHP要允许EXEC这个危险函数(执行内部程序)! u/ [% K% f) {* I* L. P" S. `3 j
, Q# S3 g/ T% [4 S$ ]3 W7 R) K还要配置WHMCS产品..选择该模块功能2 Y* z) o( o/ \, ]9 ^4 S
产品还要新增三个自定义区域,名称分别是ipmiip/ipmiuser/ipmipass 类型为文本框
* y' s5 z8 j: L. ?- [9 t. n然后..就没有然后了...4 ^- M* |6 G* h: l1 j7 c: Y
5 v4 [3 r3 ], i* P2 X3 ^$ B9 o' f[PHP] 纯文本查看 复制代码
<?php
#save as [whmcs]/modules/servers/ipmi/ipmi.php
function ipmi_ClientArea($params) {
# Output can be returned like this, or defined via a clientarea.tpl ipmi file (see docs for more info)
$ipmiip = $params['customfields']["ipmiip"];
$ipmiuser = $params['customfields']["ipmiuser"];
$ipmipass = $params['customfields']["ipmipass"];
$cmd="ipmitool -H $ipmiip -U $ipmiuser -P $ipmipass -I lanplus power status";
$power=substr(exec($cmd),17);
$p="https://$ipmiip/";
$code = "机器电源状态: $power 用户名:$ipmiuser 密码:$ipmipass <a href=\"$p\" target=\"_blank\" style=\"color:#cc0000\">登陆到IPMI页面</a>";
return $code;
}
function ipmi_AdminLink($params) {
$ipmiip = $params['customfields']["ipmiip"];
$ipmiuser = $params['customfields']["ipmiuser"];
$ipmipass = $params['customfields']["ipmipass"];
$i=explode(".",$ipmiip);
$p="https://$ipmiip/"
$code = "<a href=\"$p\" target=\"_blank\" style=\"color:#cc0000\">登陆到IPMI页面</a>";
return $code;
}
function ipmi_LoginLink($params) {
$ipmiip = $params['customfields']["ipmiip"];
$ipmiuser = $params['customfields']["ipmiuser"];
$ipmipass = $params['customfields']["ipmipass"];
$i=explode(".",$ipmiip);
$p="https://$ipmiip/"
$code = "<a href=\"$p\" target=\"_blank\" style=\"color:#cc0000\">登陆到IPMI页面</a>";
return $code;
}
function ipmi_reboot($params) {
$ipmiip = $params['customfields']["ipmiip"];
$ipmiuser = $params['customfields']["ipmiuser"];
$ipmipass = $params['customfields']["ipmipass"];
$cmd="ipmitool -H $ipmiip -U $ipmiuser -P $ipmipass -I lanplus power reset";
$return=exec($cmd);
if ($return=="") $return = "success";
return $return;
}
function ipmi_shutdown($params) {
$ipmiip = $params['customfields']["ipmiip"];
$ipmiuser = $params['customfields']["ipmiuser"];
$ipmipass = $params['customfields']["ipmipass"];
$cmd="ipmitool -H $ipmiip -U $ipmiuser -P $ipmipass -I lanplus power off";
$return=exec($cmd);
if ($return=="") $return = "success";
return $return;
}
function ipmi_on($params) {
$ipmiip = $params['customfields']["ipmiip"];
$ipmiuser = $params['customfields']["ipmiuser"];
$ipmipass = $params['customfields']["ipmipass"];
$cmd="ipmitool -H $ipmiip -U $ipmiuser -P $ipmipass -I lanplus power on";
$return=exec($cmd);
if ($return=="") $return = "success";
return $return;
}
function ipmi_cycle($params) {
$ipmiip = $params['customfields']["ipmiip"];
$ipmiuser = $params['customfields']["ipmiuser"];
$ipmipass = $params['customfields']["ipmipass"];
$cmd="ipmitool -H $ipmiip -U user -P $pass -I lanplus power cycle";
$return=exec($cmd);
if ($return=="") $return = "success";
return $return;
}
function ipmi_ClientAreaCustomButtonArray() {
$buttonarray = array(
"重启RESET" => "reboot",
"电源重置POWER_CYCLE" => "cycle",
"电源关闭POWER_OFF" => "off",
"电源开启POWER_ON" => "on",
);
return $buttonarray;
}
function ipmi_AdminCustomButtonArray() {
$buttonarray = array(
"重启RESET" => "reboot",
"电源重置POWER_CYCLE" => "cycle",
"电源关闭POWER_OFF" => "off",
"电源开启POWER_ON" => "on",
);
return $buttonarray;
}
?>
) ?5 z0 z( ?1 j8 g' W6 G; x2 X |