Chinaunix首页 | 论坛 | 博客
  • 博客访问: 834330
  • 博文数量: 167
  • 博客积分: 7173
  • 博客等级: 少将
  • 技术积分: 1671
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-04 23:07
文章分类

全部博文(167)

文章存档

2018年(1)

2017年(11)

2012年(2)

2011年(27)

2010年(88)

2009年(38)

分类: 系统运维

2010-09-13 18:50:14

    今天早上回到公司就发现电脑坏,在同事的机器上写了个东西,通过页面点击按钮进行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) |
给主人留下些什么吧!~~

Wesley_Lee2010-09-28 14:05:17

liyl.space@gmail.com

Wesley_Lee2010-09-28 14:03:59

太强的了,同样也想读源码学习一下。

chinaunix网友2010-09-20 16:03:36

我也是不想匿名的,可输入我在cu的账号说错误。。。 想看看配置过程

chinaunix网友2010-09-14 20:15:49

sky大大。太强大了。我要读源码学习学习!

chinaunix网友2010-09-14 09:52:27

不想匿名的,可输入我在cu的账号说错误。。。