Chinaunix首页 | 论坛 | 博客
  • 博客访问: 830043
  • 博文数量: 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


阅读(1949) | 评论(10) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-14 09:51:33

思路不错,我也正在做公司的运维平台,有些地方可以借鉴你的。

chinaunix网友2010-09-13 20:30:17

To higkoo: 因为整套东西都是自主开发,可能不能完全写得出来,有需要我们私聊。

chinaunix网友2010-09-13 19:58:08

sky大大好厉害!

chinaunix网友2010-09-13 19:52:59

能写详细一点吗?譬如,我可以按照你的指引,搭建出这套环境。 我的博客: hi.baidu.com/higkoo

skybin0908042010-09-13 18:51:38

只是一些测试脚本,有bug,有需要的朋友按需修改吧