由于项目中包含几十台服务器,且服务器都需要自己运维,安装使用环境很浪费时间,而且每10台服务器共用1个nas,这里我写了个shell脚本,将安装包和脚本都放在nas里,然后通过运行脚本直接安装。
安装jdk命令:sh installSoftware.sh installJava
安装nginx命令:sh installSoftware.sh installNginx
安装redis命令:sh installSoftware.sh installRedis
安装所有环境命令:sh installSoftware.sh installAll
下面贴出shell脚本:
#!/bin/bash
#定义变量
#自动部署java
installJava() {
mkdir /usr/java
mkdir /software
cp -rf /nas/software/jdk-8u121-linux-x64.gz /software/
cd /software
tar -zxf jdk-8u121-linux-x64.gz
mv /software/jdk1.8.0_121 /usr/java/
echo "export JAVA_HOME=/usr/java/jdk1.8.0_121" >> /etc/profile
echo "export JAVA_BIN=/usr/java/jdk1.8.0_121/bin" >> /etc/profile
echo "export PATH=$JAVA_HOME/bin:$PATH" >> /etc/profile
echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile
echo "export JAVA_HOME JAVA_BIN PATH CLASSPATH" >> /etc/profile
source /etc/profile
}
#自动部署nginx
installNginx() {
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
mkdir /software
cp -rf /nas/software/nginx-1.13.1.tar.gz /software/
cd /software
tar -zxvf nginx-1.13.1.tar.gz
mv nginx-1.13.1 nginx
mv nginx /usr/local/
cd /usr/local/nginx
./configure
make
make install
mkdir -p /usr/local/nginx/cache/fastcgi_cache
mkdir -p /usr/local/nginx/logs
touch /usr/local/nginx/logs/error.log
touch /usr/local/nginx/logs/access.log
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
echo "nginx install successfully!"
}
#自动部署redis
installRedis() {
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced
mkdir /software
cp -rf /nas/software/redis-5.0.4.tar.gz /software/
cd /software
tar xzvf redis-5.0.4.tar.gz
mv redis-5.0.4 redis
mv redis /usr/local/
cd /usr/local/redis
make
make MALLOC=libc
cd src
make install PREFIX=/usr/local/redis
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc
sed -i "s/daemonize no/daemonize yes/g" /usr/local/redis/etc/redis.conf
sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /usr/local/redis/etc/redis.conf
echo "/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf" >> /etc/rc.local
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
echo "redis install successfully!/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf"
}
installAll(){
installJava
installNginx
installRedis
}
# 如果输入格式不对,给出提示!
tips() {
echo ""
echo "WARNING!!!......Tips, please use command: sh installSoftware.sh [installJava|installNginx|installRedis|installAll].
For example: sh installSoftware.sh installNginx
startNginx /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
startRedis /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf"
exit 1
}
# 根据输入参数执行对应方法,不输入则执行tips提示方法
case "$1" in
"installJava")
installJava
;;
"installNginx")
installNginx
;;
"installRedis")
installRedis
;;
"installAll")
installAll
;;
*)
tips
;;
esac



