缺月挂梧桐 漏断人初静

导航

自动化部署环境脚本

因某些原因 ,公司会经常新增服务器配置环境变量,故写了此自动化部署脚本。再把脚本放到jenkins服务器上,每次批量部署环境前,先修改新买服务器的主机名,再在jenkins hosts里配置好主机名,最后点击jenkins即可。

 

  1 #/bin/bash
  2 #先把相关软件复制到相关目录再执行本脚本
  3 
  4 #set -e
  5 #安装基本软件
  6 yum install -y lrzsz dos2unix nginx
  7 
  8 #新增账号
  9 useradd dev   && sed -n '1p' /data1/yunwei/passwd | passwd --stdin dev
 10 useradd wuyun && sed -n '2p' /data1/yunwei/passwd | passwd --stdin wuyun
 11 
 12 usermod -a -G dev wuyun    
 13 usermod -a -G dev nginx
 14 
 15 #设置环境变量
 16 mv /data1/yunwei/pack_tar/jdk-8u92-zhuanyong.tar.gz  /usr/local/
 17 tar zxvf /usr/local/jdk-8u92-zhuanyong.tar.gz  -C /usr/local/
 18 echo "
 19 
 20 export HISTTIMEFORMAT=\"%Y-%m-%d:%H-%M-%S   `whoami`:   \"
 21 
 22 export JAVA_HOME=/usr/local/jdk1.8.0_92
 23 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 24 export PATH=$JAVA_HOME/bin:$PATH
 25 " >> /etc/profile
 26 source /etc/profile
 27 
 28 #更改熵池随机数
 29 function rng(){
 30         yum install -y rng-tools
 31         cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
 32         sed -i '5s/$/& -r \/dev\/urandom/' /etc/systemd/system/rngd.service  
 33         systemctl daemon-reload
 34         systemctl restart rngd
 35 }
 36 
 37 #安装zabbix-agent
 38 rpm -ihv http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
 39 yum install zabbix-agent -y
 40 name=`hostname`
 41 sed -i '95,136s/127.0.0.1/x.x.x.x/' /etc/zabbix/zabbix_agentd.conf
 42 sed -i '147s/Zabbix Server/'$name'/'  /etc/zabbix/zabbix_agentd.conf
 43 systemctl start zabbix-agent
 44 
 45 
 46 
 47 hostname=`hostname | cut -d - -f2`
 48 
 49 #安装字体
 50 yum -y install fontconfig
 51 cp /data1/yunwei/font/alger.ttf  /usr/share/fonts/
 52 fc-cache -f 
 53 
 54 
 55 function redis_stuep(){
 56 
 57         #安装redis伪集群脚本,先把redis-4.0.9.tar.gz redis-3.2.2.gem及启动脚本放在/data1/redis-cluster目录下,然后执行该脚本即可 
 58         set -e
 59         #获取redis本机ip
 60         ip=`ifconfig eth0 | grep inet | awk '{print $2}'`
 61 
 62         #解压安装redis
 63         cd /data1/redis-cluster
 64         tar zxvf redis-4.0.9.tar.gz -C /data1/redis-cluster
 65         cd /data1/redis-cluster/redis-4.0.9
 66         make  &&  make install PREFIX=/data1/redis-cluster
 67 
 68         #配置redis
 69         cd /data1/redis-cluster
 70         mv bin redis-01
 71         cp /data1/redis-cluster/redis-4.0.9/redis.conf redis-01
 72         sed -i '69s/127.0.0.1/'$ip'/' redis-01/redis.conf
 73         sed -i '92,158s/6379/7001/' redis-01/redis.conf
 74         sed -i '136s/no/yes/' redis-01/redis.conf
 75         sed -i '672s/no/yes/' redis-01/redis.conf
 76         sed -i '814s/#//' redis-01/redis.conf
 77         sed -i '822s/#//' redis-01/redis.conf
 78         sed -i '828s/#//' redis-01/redis.conf
 79 
 80 
 81         cp -r redis-01 redis-02
 82         cp -r redis-01 redis-03
 83         cp -r redis-01 redis-04
 84         cp -r redis-01 redis-05
 85         cp -r redis-01 redis-06
 86 
 87         sed -i '92,158s/7001/7002/' redis-02/redis.conf
 88         sed -i '92,158s/7001/7003/' redis-03/redis.conf
 89         sed -i '92,158s/7001/7004/' redis-04/redis.conf
 90         sed -i '92,158s/7001/7005/' redis-05/redis.conf
 91         sed -i '92,158s/7001/7006/' redis-06/redis.conf
 92 
 93         #启动redis
 94         chmod 741 /data1/redis-cluster/*.sh
 95         /data1/redis-cluster/all-start.sh
 96         sleep 3
 97         #安装redis-trib所需的 ruby脚本
 98         cp /data1/redis-cluster/redis-4.0.9/src/redis-trib.rb  /data1/redis-cluster/redis-trib.rb  
 99         yum install -y ruby  rubygems
100         gem install redis-3.2.2.gem
101 
102         yum install -y  expect
103         #配置集群,自动交互
104         expect -c "
105                 cd /data1/redis-cluster;
106                 spawn ./redis-trib.rb create --replicas 1 $ip:7001 $ip:7002 $ip:7003 $ip:7004 $ip:7005 $ip:7006;
107                 expect "configuration" { send \"yes\r\"; }
108                 expect eof
109         "
110         cp /data1/redis-cluster/redis-01/redis-cli  /usr/bin/redis-cli
111         echo "redis-cluster is ok "
112 
113 }
114 
115 if [ $hostname == "api" ];then
116     rng
117     mkdir -p /data1/www/{download/apps,gateway}
118     chown -R dev.dev /mnt
119     if [ `hostname | cut -d - -f3` -eq 03 ];then
120         cp -r /data1/yunwei/pack_tar/tomcat/app-03/application.zip  /data1/
121         mv /data1/yunwei/systemctl-shell/ysc/*  /lib/systemd/system/
122         mv /data1/yunwei/nginx/*test.conf /etc/nginx/conf.d/
123         unzip -o /data1/application.zip -d /data1/
124         chown -R dev.dev /data1/
125         find /data1/application/* -name "*.sh" | xargs chmod 741
126         systemctl start tomcat-1
127         systemctl start tomcat-2
128         systemctl start tomcat-3
129         systemctl enable tomcat-1
130         systemctl enable tomcat-2
131         systemctl enable tomcat-3
132         
133     else
134         mkdir -p /data1/application/sms/{logs,bak}
135         mkdir -p /data1/bak/api
136         cp -r /data1/yunwei/pack_tar/tomcat/app-01/application.zip  /data1/
137         mv  /data1/yunwei/systemctl-shell/tomcat.service  /lib/systemd/system/
138         mv /data1/yunwei/nginx/api.conf /etc/nginx/conf.d/api.conf
139         unzip -o /data1/application.zip -d /data1/
140         find /data1/application/* -name "*.sh" | xargs chmod 741
141         chown -R dev.dev /data1/
142         systemctl start tomcat
143         systemctl enable tomcat
144     fi
145     systemctl start nginx
146     systemctl enable nginx
147     rm -rf /data1/application.zip
148 elif [ $hostname == "redis" ];then
149     mkdir -p /data1/redis-cluster
150     mv /data1/yunwei/redis/* /data1/redis-cluster
151     yum -y remove nginx
152     redis_stuep
153 else
154     rng
155     cp -r /data1/yunwei/pack_tar/tomcat/cs-server/application.zip  /data1/ 
156     mv  /data1/yunwei/systemctl-shell/tomcat-*  /lib/systemd/system/
157     mv /data1/yunwei/nginx/cs.conf /etc/nginx/conf.d/cs.conf
158     mv /data1/yunwei/nginx/server.conf /etc/nginx/conf.d/server.conf
159     unzip -o /data1/application.zip -d /data1/
160     find /data1/application/* -name "*.sh" | xargs chmod 741
161     systemctl start nginx
162     systemctl enable nginx
163     mkdir -p /data1/bak/{cs/tomcat-1,server/tomcat-2}
164     chown -R dev.dev /data1/
165     systemctl start tomcat-1
166     systemctl start tomcat-2
167     systemctl enable tomcat-1
168     systemctl enable tomcat-2
169     rm -rf /data1/application.zip
170 fi
171 
172 rm -rf /data1/yunwei*

 

posted on 2018-11-29 16:36  勤劳の洗碗机  阅读(427)  评论(0编辑  收藏  举报