lepus 一键安装脚本

最近把开源的lepus做了一些定制改造,主要是让他监控我们的分布式mysql集群。修改了他的php和python代码。

后来发现这个东西安装比较麻烦,安装前要有php、python、httpd、snmpd环境,并且要有mysql数据库来存储数据(我为其内置了一个mysql。并把端口设置为3388)。

为了安装简单,我写了一个一键安装脚本,执行一个安装命令,就会自动安装完所有东西。并且把lepus启动项添加到linux自启动中去。

下面是安装脚本(目前这个只支持CentOs的6.5版本)。

#!/bin/sh

cur_dir=`dirname $0`
cd $cur_dir
log_file="$cur_dir/install.log"  
install_dir="/usr/local/lepus"

DO_LOG()
{
  declare time=`date "+%Y-%m-%d %H:%M:%S"`
  echo "[$time]$*"
  echo "[$time]$*">>$log_file
}

DO_WARN_LOG()
{
  declare time=`date "+%Y-%m-%d %H:%M:%S"`
  echo -e "\033[33m[$time]WARNING:$*\033[0m"
  echo "[$time]$*">>$log_file
}

DO_ERR_LOG()
{
  declare time=`date "+%Y-%m-%d %H:%M:%S"`
  echo -e "\033[31m[$time]ERROR:$*\033[0m"
  echo "[$time]$*">>$log_file
}

DO_SUCC_LOG()
{
  declare time=`date "+%Y-%m-%d %H:%M:%S"`
  echo -e "\033[32m[$time]SUCCESS:$*\033[0m"
  echo "[$time]$*">>$log_file
}

check_env()
{
  declare time=`date "+%Y%m%d%H%M%S"`
  declare check_flag 
  check_flag=`cat /etc/redhat-release |grep "CentOS release 6.5"|wc -l`
  if [ $check_flag -eq 0 ];then
    DO_ERR_LOG "The os is not CentOS release 6.5 " 
    exit 1
  else
    DO_SUCC_LOG "The os is CentOS release 6.5 "
  fi
   
  if [ -d $install_dir ];then
    rm -f lepus-$time.bak
    tar zpcv -f lepus-$time.bak $install_dir >/dev/null 2>&1
    rm -rf $install_dir/*
  else
    mkdir -p $install_dir
  fi
}

prepare_gcc_env()
{
  declare r_flag=0
  DO_LOG "start prepare gcc environment ... "
  cd Pkg_Centos-6.5/gcc/

  rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm >/dev/null 2>&1
  rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm >/dev/null 2>&1
  rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm >/dev/null 2>&1
  rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm >/dev/null 2>&1
  rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm >/dev/null 2>&1

  DO_SUCC_LOG "Finished prepare gcc environment successfully "
  cd - >/dev/null 2>&1
  return $r_flag
}

down_selinux_iptables()
{
 sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
 setenforce 0
 iptables -F 
 chkconfig --level 2345 iptables off 
}


prepare_snmpd_env()
{
  declare r_flag=0
  DO_LOG "start prepare snmpd environment ... "
  cd Pkg_Centos-6.5/snmpd/

  rpm -ivh lm_sensors-libs-3.1.1-17.el6.x86_64.rpm >/dev/null 2>&1
  rpm -ivh net-snmp-libs-5.5-49.el6.x86_64.rpm >/dev/null 2>&1
  rpm -ivh net-snmp-5.5-49.el6.x86_64.rpm >/dev/null 2>&1
  rpm -ivh net-snmp-utils-5.5-49.el6.x86_64.rpm >/dev/null 2>&1

  DO_SUCC_LOG "Finished prepare snmpd environment successfully "
  cd - >/dev/null 2>&1
  return $r_flag
}

prepare_httpd_env()
{
  declare r_flag=0
  DO_LOG "start prepare httpd environment ... "
  cd Pkg_Centos-6.5/httpd/
  rpm -ev --nodeps httpd-2.2.15-29.el6.centos.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps apr-util-ldap-1.3.9-3.el6_0.1.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps apr-util-1.3.9-3.el6_0.1.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps apr-1.3.9-5.el6_2.x86_64 >/dev/null 2>&1

  rpm -ivh apr-1.3.9-5.el6_2.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh apr-util-1.3.9-3.el6_0.1.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh httpd-tools-2.2.15-29.el6.centos.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1 
 
  /etc/init.d/httpd start >>$log_file 2>&1
  /sbin/chkconfig --level 2345 httpd on
  cd - >/dev/null 2>&1
  if [ $r_flag -eq 0 ];then
    DO_SUCC_LOG "Finished prepare httpd environment successfully "
  else
    DO_ERR_LOG "Finished prepare httpd environment unsuccessfully "
    exit 1
  fi
  return $r_flag
}

prepare_php_env()
{ 
  declare r_flag=0
  DO_LOG "start prepare php environment ... "
  cd Pkg_Centos-6.5/php/
  rpm -ev --nodeps php-mysql-5.3.3-26.el6.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps php-pdo-5.3.3-26.el6.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps php-5.3.3-26.el6.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps php-cli-5.3.3-26.el6.x86_64 >/dev/null 2>&1
  rpm -ev --nodeps php-common-5.3.3-26.el6.x86_64 >/dev/null 2>&1

  rpm -ivh php-common-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh php-cli-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh php-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh php-pdo-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  rpm -ivh php-mysql-5.3.3-26.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  cd - >/dev/null 2>&1
  if [ $r_flag -eq 0 ];then
    DO_SUCC_LOG "Finished prepare php environment successfully "
  else
    DO_ERR_LOG "Finished prepare php environment unsuccessfully "
    exit 1
  fi 
  return $r_flag
}

prepare_python_env()
{
  declare r_flag=0
  declare v_mysql_config=""
  DO_LOG "start prepare python environment ... "
  cd Pkg_Centos-6.5/python/
  rpm -ev --nodeps python-devel-2.6.6-51.el6.x86_64 >/dev/null 2>&1
  rpm -ivh python-devel-2.6.6-51.el6.x86_64.rpm >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  
  if [ -d /usr/local/MySQLdb1-master ];then
    rm -rf /usr/local/MySQLdb1-master
  fi

  unzip MySQLdb-python.zip -d /usr/local >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  v_mysql_config=`find $install_dir/mysql -name mysql_config`

  if [ ! -z $v_mysql_config ];then
    echo "mysql_config=$v_mysql_config" >>/usr/local/MySQLdb1-master/site.cfg
    cd - >/dev/null 2>&1
    cd /usr/local/MySQLdb1-master/
    python setup.py build >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
    python setup.py install >>$log_file 2>&1;[ $? -ne 0 ] &&r_flag=1
  else
    r_flag=1
  fi

  cd - >/dev/null 2>&1
  if [ $r_flag -eq 0 ];then
    DO_SUCC_LOG "Finished prepare python environment successfully "
  else
    DO_ERR_LOG "Finished prepare python environment unsuccessfully "
    exit 1
  fi
  return $r_flag
}

prepare_mysql_env()
{
  declare r_flag=0
  DO_LOG "start prepare mysql environment ... "
  id mysql >/dev/null 2>&1
  if [ $? -ne 0 ];then
    useradd mysql
  fi
  
  if [ -f /sys/kernel/mm/transparent_hugepage/enabled ];then 
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
  fi
  
  echo "if [ -f /sys/kernel/mm/transparent_hugepage/enabled ];then
          echo never > /sys/kernel/mm/transparent_hugepage/enabled
        fi">>/etc/rc.local

  tar -zxvf mysql-lepus-151030.tar.gz -C $install_dir >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  sed -i "s+^basedir.*$+basedir=$install_dir\/mysql+" $install_dir/mysql/data/my.cnf >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  sed -i "s+^datadir.*$+datadir=$install_dir\/mysql\/data+" $install_dir/mysql/data/my.cnf >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  chown mysql.mysql -R $install_dir/mysql >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
 
  rm -f /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  cp $install_dir/mysql/support-files/mysql.server /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  sed -i "45,48s+^basedir=.*$+basedir=$install_dir\/mysql+" /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  sed -i "45,48s+^datadir=.*$+datadir=$install_dir\/mysql\/data+" /etc/init.d/mysql_lepus >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
   
  echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$install_dir/mysql/lib" >>/root/.bash_profile
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$install_dir/mysql/lib
  export LD_LIBRARY_PATH
 
  chmod +x /etc/init.d/mysql_lepus  >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  /etc/init.d/mysql_lepus start;[ $? -ne 0 ] &&r_flag=1
  
  if [ $r_flag -eq 0 ];then
    DO_SUCC_LOG "Finished prepare mysql environment successfully "
  else
    DO_ERR_LOG "Finished prepare mysql environment unsuccessfully "
    exit 1
  fi 
  
  return $r_flag 
}

install_lepus()
{
  declare r_flag=0
  DO_LOG "start install lepus  ... "
  tar -zxvf lepus-python-151030.tar.gz -C $install_dir >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  chmod +x $install_dir/lepus/lepus*
 
  rm -f /usr/local/sbin/lepus
  ln -s $install_dir/lepus/lepus /usr/local/sbin/
  rm -f /usr/local/sbin/lepus_monitor
  ln -s $install_dir/lepus/lepus_monitor /usr/local/sbin/

  rm -f /etc/init.d/lepus
  ln -s $install_dir/lepus/lepus /etc/init.d/
  /sbin/chkconfig --level 2345 lepus on
 
  $install_dir/lepus/lepus start;[ $? -ne 0 ] &&r_flag=1
  
  rm -rf /var/www/html/lepus 
  tar -zxvf lepus-php-151030.tar.gz -C /var/www/html/ >/dev/null 2>&1;[ $? -ne 0 ] &&r_flag=1
  
  if [ $r_flag -eq 0 ];then
    DO_SUCC_LOG "Finished install lepus successfully "
  else
    DO_ERR_LOG "Finished install lepus unsuccessfully "
    exit 1
  fi

  return $r_flag
}

rm -f $log_file
check_env
down_selinux_iptables
prepare_gcc_env
prepare_snmpd_env
prepare_httpd_env
prepare_php_env
prepare_mysql_env
prepare_python_env
install_lepus


安装测试


浏览器访问



需要说明的,我的安装脚本同目录的有自己定制化好了python后台监控tar包,和前台php包,还有已经初始化好数据的mysql包,以及需要的一个os包。








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在CentOS上安装Lepus,您需要按照以下步骤进行操作: 1. 下载Lepus安装包并解压缩。 2. 运行install.sh脚本安装Lepus。 3. 配置MySQL的授权访问,创建lepus数据库并授权。 4. 导入lepus初始化数据。 具体的步骤如下: 1. 下载Lepus安装包并解压缩。 您可以从Lepus的官方网站(https://github.com/51idc/Lepus)下载最新版本的安装包。下载完成后,您需要将其解压缩到您的CentOS系统中。 2. 运行install.sh脚本安装Lepus。 在解压缩后的Lepus目录中,您可以找到一个名为install.sh的脚本。运行该脚本安装Lepus。您可以使用以下命令运行该脚本: ``` cd /path/to/Lepus sh install.sh ``` 在安装过程中,您需要输入一些配置信息,例如MySQL的用户名和密码等。 3. 配置MySQL的授权访问,创建lepus数据库并授权。 在安装Lepus之前,您需要在MySQL中创建一个名为lepus的数据库,并授权给Lepus用户。您可以使用以下命令完成此操作: ``` mysql -uroot -p ``` 然后输入MySQL的root用户密码以登录MySQL。 ``` create database lepus default character set utf8; grant select,insert,update,delete,create on lepus.* to 'lepus'@'localhost' identified by 'lepus'; grant select,insert,update,delete,create on lepus.* to 'lepus'@'127.0.0.1' identified by 'lepus'; flush privileges; ``` 这些命令将创建一个名为lepus的数据库,并授权给Lepus用户。 4. 导入lepus初始化数据。 在创建了lepus数据库之后,您需要将lepus的初始化数据导入到该数据库中。您可以使用以下命令完成此操作: ``` cd /path/to/Lepus/sql mysql -uroot -p lepus < lepus_table.sql mysql -uroot -p lepus < lepus_data.sql ``` 这些命令将导入lepus的初始化数据到lepus数据库中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值