今天早上回到公司就发现电脑坏,在同事的机器上写了个东西,通过页面点击按钮进行squid、nginx、
memcache、resin、jdk等安装。并可以进行批量安装。
构造的架构是:
已安装Resin为例:
页面上显示如下:
我们只需要在这里选择所需操作的机器,然后选择安装的版本和安装目录、应用名字就ok了。
页面会把指令发送到数据采集、控制中心端;这个Server就会进行分发到各台机器上。
在各台服务器或路由或交换机上接受到指令就进行操作,这里是服务器端接收到安装resin的指令,就调用系统上的相关命令进行操作;(/data/agent/command/install_Resin.sh )这个命令脚本也是按需进行分发。
agent可以选择python perl c等语言进行架构监听端口。
安装脚本简单为:
#!/bin/bash
#edit by sky
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
LANG=zh_CN.GB18030
export PATH
export LANG
Resin_pro318=""
JDKURL=""
APPNAME=`/usr/bin/curl 2> /dev/null`
VERSION=$1
JDKVERSION=`/usr/bin/curl jdk.log 2> /dev/null`
Resin_JDK="jdk1.6.0_06"
function wgetResin(){
wget $1 -O /data/$VERSION.tar.gz 2> /dev/null
}
function wgetJDK(){
wget $JDKURL$1 -O /usr/java/$1 2> /dev/null
}
function installResin(){
cd /data
tar -zxf /data/$VERSION.tar.gz
mv /data/$VERSION /data/$VERSION"_"$APPNAME
cd $VERSION"_"$APPNAME
chmod +x /data/$VERSION"_"$APPNAME/INSTALL.resin
result=`/data/$VERSION"_"$APPNAME/INSTALL.resin /usr/java/$1 2> /dev/null | tail -1`
if echo $result | grep -q "successfully"
then
echo "0"
else
echo "1"
fi
}
function installJDK(){
cd /usr/java
wgetJDK $JDKVERSION
chmod +x $JDKVERSION
tar -zxf $JDKVERSION
rm -f $JDKVERSION
}
case $1 in
resin-pro-3.1.8)
echo $1
if echo $JDKVERSION | grep -q "jdk"
then
installTAP="no"
case $JDKVERSION in
jdk1.6.0_06*)
Resin_JDK="jdk1.6.0_06"
;;
jdk1.6.0_18*)
Resin_JDK="jdk1.6.0_18"
;;
esac
if ls -l /usr/java | grep -q $Resin_JDK
then
installTAP="yes"
else
installTAP="no"
fi
if [[ $installTAP == "no" ]] ; then
installJDK $JDKVERSION
fi
fi
getJDK=`echo $JDKVERSION | sed 's#.tar.gz##g'`
wgetResin $Resin_pro318
installResin $getJDK
;;
resin-3.1.8)
echo $1
;;
resin-pro-3.1.6)
echo $1
;;
resin-pro-3.1.4)
echo $1
;;
resin-pro-3.0.14)
echo $1
;;
*)
echo "resin-pro-3.1.8"
;;
esac
阅读(1999) | 评论(10) | 转发(0) |