gitlab之实战部署
#:准备Java环境,安装jdk
root@ubuntu:~# cd /usr/local/src/
root@ubuntu:/usr/local/src# ls
jdk-8u191-linux-x64.tar.gz
root@ubuntu:/usr/local# ln -sv /usr/local/src/jdk1.8.0_191 /usr/local/jdk
#:配置环境变量
root@ubuntu:/data/tomcat# vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
#:创建目录,并下载Tomcat
root@ubuntu:/data/tomcat# mkdir /apps
root@ubuntu:/data/tomcat# cd /apps/
root@ubuntu:/data/tomcat# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.46/bin/apache-tomcat-8.5.46.tar.gz
root@ubuntu:/data/tomcat# tar xf apache-tomcat-8.5.46.tar.gz
root@ubuntu:/data/tomcat# ln -sv /apps/apache-tomcat-8.5.46 /apps/tomcat
root@ubuntu:/data/tomcat# cd tomcat
#:修改Tomcat配置文件
root@ubuntu:/data/tomcat# vim conf/server.xml
<Host name="localhost" appBase="/data/tomcat/tomcat_webapps" unpackWARs="true" autoDeploy="true">
#:创建三个目录(appdir放压缩文件,webdir放解压文件,webapps是Tomcat的访问/目录)
root@ubuntu:/data/tomcat# mkdir /data/tomcat/{tomcat_appdir,tomcat_webdir,tomcat_webapps} -pv
#:创建一个Tomcat用户(必须使其可以登录)
root@ubuntu:/data/tomcat# groupadd -g 2019 tomcat
root@ubuntu:/data/tomcat# useradd -m -u 2019 -s /bin/bash -g tomcat tomcat
#:编辑一个Tomcat的启动停止脚本
root@ubuntu:~# vim tomcat
#!/bin/bash
JDK_HOME=/apps/jdk1.7.0_79
CATALINA_HOME=/apps/tomcat
export JDK_HOME CATALINA_HOME
source /etc/profile
#PID=`ps -ef | grep -v grep | grep java | awk '{print $2}'`
#NUM=`ps -ef | grep -v grep | grep java | awk '{print $2}' | wc -l`
#case $1 in
start() {
echo "正在判断服务状态,请稍等!"
echo "请稍等3秒钟"
echo "3";sleep 1;echo "2";sleep 1;echo "1";sleep 1
if netstat -an | grep 8080 | grep LISTEN >/dev/null
then
echo "Tomcat已经正在运行了!"
else
echo "Tomcat没有运行,1秒后启动!"
echo 1;sleep 1
$CATALINA_HOME/bin/catalina.sh start
echo "Tomcat 已经成功启动完成,5秒后判断是否启动成功"
echo "5";sleep 1;echo "4";sleep 1
echo "3";sleep 1;echo "2";sleep 1;echo "1";sleep 1
if netstat -an | grep 8080 | grep LISTEN >/dev/null
then
PID=`ps -ef | grep tomcat | grep jdk | awk '{print $2}'`
NUM=`ps -ef | grep tomcat | grep jdk | awk '{print $2}' | wc -l`
echo "Tomcat 已经成功启动${NUM} 个Tomcat进程!,PID为${PID}"
else
echo "Tomcat启动失败,请重新启动!"
echo 1
fi
fi
}
stop() {
PID=`ps -ef | grep -v grep | grep java | awk '{print $2}'`
NUM=`ps -ef | grep -v "color" | grep tomcat | awk '{print $2}' | wc -l`
echo "正在判断服务状态,请稍等3秒钟!"
echo "3";sleep 1;echo "2";sleep 1;echo "1";sleep 1
if netstat -an | grep 8080 | grep LISTEN >/dev/null
then
echo "Tomcat运行中,1秒后关闭!"
echo 1;sleep 1
echo "即将关闭Tomcat服务,请稍等!"
$CATALINA_HOME/bin/catalina.sh stop ;echo "已经执行关闭命令,正在检查关闭了多少Tomcat进程,请稍等30秒钟!"
sleep 27
echo "3";sleep 1;echo "2";sleep 1;echo "1";sleep 1
pkill java && pkill tomcat
if netstat -an | grep 8080 | grep LISTEN >/dev/null;then
PID=`ps -ef | grep -v grep | grep java | awk '{print $2}'`
NUM=`ps -ef | grep -v "color" | grep tomcat | awk '{print $2}' | wc -l`
kill -9 $PID ;echo "已成功关闭${NUM} 个tomcat进程"
else
echo "Tomcat 已经关闭完成!"
echo "3";sleep 1;echo "2";sleep 1;echo "1";sleep 1
fi
else
echo "Tomcat 没有运行"
echo 1
fi
if netstat -an | grep 8080 | grep LISTEN >/dev/null;then
PID=`ps -ef | grep -v grep | grep java | awk '{print $2}'`
#NUM=`ps -ef | grep -v "color" | grep tomcat | awk '{print $2}' | wc -l`
echo "关闭失败,即将强制删除tomcat进程!"
sleep 2
pkill tomcat ;sleep 2
if netstat -an | grep 8080 | grep LISTEN >/dev/null;then
echo "强制关闭失败,即将再次强制删除tomcat进程!"
pkill java; sleep 2
fi
fi
}
#:切换到tomcat,利用脚本启动服务
root@ubuntu:~# su -tomcat
tomcat@ubuntu:~$ /etc/init.d/tomcat start
#:配置keepalive+haproxy
#:安装
root@ubuntu:~# apt install haproxy keepalived -y
#:配置haproxy
root@ubuntu:~# vim /etc/haproxy/haproxy.cfg
global
maxconn 100000
#chroot /usr/local/haproxy
uid 99
gid 99
daemon
nbproc 1
pidfile /run/haproxy.pid
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
log 127.0.0.1 local3 info
defaults
option http-keep-alive
option forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /haproxy-status
stats auth haadmin:q1w2e3r4ys
listen web_port
bind 0.0.0.0:80
mode http
log global
server 192.168.6.104 192.168.6.104:8080 check inter 3000 fall 2 rise 5
server 192.168.6.103 192.168.6.103:8080 check inter 3000 fall 2 rise 5
#:查找keepalive的配置文件在哪里
root@ubuntu:~# find / -name keepalived*.conf*
#:将配置文件拷贝到、etc目录
root@ubuntu:~# cp /usr/share/doc/keepalived/samples/keepalived.conf.vrrp /etc/keepalived/keepalived.conf
#:修改配置文件
root@ubuntu:~# vim /etc/keepalived/keepalived.conf
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
garp_master_delay 10
smtp_alert
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.6.200 dev eth0 label eth0:0
}
}
#:修改内核参数
root@ubuntu:~# vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
#:重启服务
root@ubuntu:~# systemctl restart haproxy keepalived
#:在jenkins服务器,将公钥拷贝到Tomcat服务器
root@ubuntu:/opt/web1# ssh-copy-id tomcat@192.168.6.104
#:怎样部署war包的jenkins #:先部署jdk
root@ubuntu:~# cd /usr/local/src/
root@ubuntu:/usr/local/src# tar xf jdk-8u191-linux-x64.tar.gz
root@ubuntu:/usr/local/src# ln -sv /usr/local/src/jdk
jdk1.8.0_191/ jdk-8u191-linux-x64.tar.gz
root@ubuntu:/usr/local/src# ln -sv /usr/local/src/jdk1.8.0_191 /usr/local/jdk #:配置环境变量 root@ubuntu:/usr/local/src# vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
root@ubuntu:/usr/local/src# source /etc/profile #:下载war包 root@ubuntu:/usr/local/src# mkdir /data/jenkins -pv
root@ubuntu:/usr/local/src# cd /data/jenkins/ #:启动服务
root@ubuntu:/data/jenkins# java -jar jenkins.war
#:
#基于Tomcat装jenkins的war包
#:先将业务停掉
root@ubuntu:/data/tomcat/tomcat_webapps# /etc/init.d/tomcat stop #:准备war包
root@ubuntu:/data/tomcat/tomcat_webapps# ls
jenkins.war #:解压 root@ubuntu:/data/tomcat/tomcat_webapps# unzip jenkins.war -d jenkins
root@ubuntu:/data/tomcat/tomcat_webapps# chown -R tomcat.tomcat /data/tomcat/ #:切换到Tomcat启动服务
root@ubuntu:/data/tomcat/tomcat_webapps# su - tomcat
tomcat@ubuntu:~$ /etc/init.d/tomcat start #:直接测试访问会出错,安装一下包
root@ubuntu:/data/tomcat/tomcat_webapps# apt-get install libxrender-dev
root@ubuntu:/data/tomcat/tomcat_webapps# apt-get install libxtst-dev
gitlab之实战部署的更多相关文章
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...
- Zookeeper+Kafka完全分布式实战部署
Zookeeper+Kafka完全分布式实战部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实我之前部署过kafak和zookeeper的完全分布式,集群是可以正常使用没错, ...
- Docker swarm 实战-部署wordpress
Docker swarm 实战-部署wordpress 创建一个overlay的网络 docker network create -d overlay demo 6imq8da3vcwvj2n499k ...
- mfs分布式系统从理论简介到实战部署
文章前面想说的话:这篇博客写出来真是有点累到了,本来昨天就基本就写好了,放在草稿里面,今天打开就没有了!!唉,就尼玛离我而去了,只有重写,然后中间虚拟机还“爆炸”重启又搞了一会,不容易呀!!希望各位博 ...
- Jenkins+Gitlab+Ansible自动化部署(五)
Freestyle Job实现静态网站部署交付(接Jenkins+Gitlab+Ansible自动化部署(四)https://www.cnblogs.com/zd520pyx1314/p/102445 ...
- Jenkins+Gitlab+Ansible自动化部署(六)
Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...
- Jenkins+Gitlab+Ansible自动化部署(二)
接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...
- Jenkins+Gitlab+Ansible自动化部署(三)
接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...
- Jenkins+Gitlab+Ansible自动化部署(一)
首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab ...
随机推荐
- vue中element-ui table列名lable换行问题 ---亲测
1.lable操作 :label = "'xxxxx \n xxxxx'" // 注意 lable 的: 注:双引号内有单引号,这样才可以解析文本.需要换行的文本处添加 \n 2. ...
- Centos7下安装BlockScout
简介 BlockScout是一个Elixir应用程序,允许用户搜索以太坊网络(包括所有叉子和侧链)上的交易,查看账户和余额以及验证智能合约.BlockScout为用户提供了一个全面,易于使用的界面,以 ...
- 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来.今天宏哥就在这里把这种测试场景讲解和分享一下. 2.用法 创建一个执行 JS 的对象 ...
- python与C结构体之间二进制数据转换
python与C结构体之间数据转换 前言 在实际应用中,可能会遇到直接和C进行二进制字节流协议通信,这时要把数据解包成python数据,如果可能,最好与C定义的结构体完全对应上. python中有2种 ...
- SSH服务器拒绝了密码。请再试一次。怎么改都不行
使用Xshell连接服务器,之前还好好的,突然之间就报"SSH服务器拒绝了密码.请再试一次"的错误. 1.检查 检查了IP.连接端口.用户.密码.网络是否正确? 本机情况:能够pi ...
- Power Platform Center of Excellence (CoE) 部署完成&主要内容说明
随着目前国内使用Power Platform的企业越来越多,而在跟客户交付项目时,客户经常想了解平台的一些基本情况: Power Platform 有多少环境,分别是谁创建和管理? Power Pla ...
- Python基础(dict与set)
#和list比较,dict有以下几个特点: #查找和插入的速度极快,不会随着key的增加而变慢: #需要占用大量的内存,内存浪费多. #dict1 = {'傻狗1':100,'傻狗2':200,'傻狗 ...
- 来了!公开揭密团队成员开发鸿蒙 OpenHarmony 的完整过程(收获官方7000奖金和开发板等,1w字用心总结)
背景 随着 OpenHarmony 组件开发大赛结果公布,我们的团队成员被告知获得了二等奖,在开心之余也想将我们这段时间宝贵的开发经验写下来与大家分享,当我们看到参赛通知的时候已经是 9 月中旬的时候 ...
- python openpyxl、RESTful、Webservice接口 基础知识
最近 在做接口测试的时候,遇到如下问题:如何通过数据驱动去做批量接口测试呢,我们的测试数据放在哪里去维护?下面整理出相关点,供大家参考 1.如何维护接口测试数据:放在excel文件中,通过python ...
- java-UDP协议接收和发送数据
UDP发送数据的步骤: A:创建发送端的Socket服务对象 B:创建数据,并把数据打包 C:通过Socket对象的发送功能发送数据包 D:释放资源 public class SendDemo { ...