#:准备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之实战部署的更多相关文章

  1. Gitlab CI 自动部署 asp.net core web api 到Docker容器

    为什么要写这个? 在一个系统长大的过程中会经历不断重构升级来满足商业的需求,而一个严谨的商业系统需要高效.稳定.可扩展,有时候还不得不考虑成本的问题.我希望能找到比较完整的开源解决方案来解决持续集成. ...

  2. Zookeeper+Kafka完全分布式实战部署

    Zookeeper+Kafka完全分布式实战部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实我之前部署过kafak和zookeeper的完全分布式,集群是可以正常使用没错, ...

  3. Docker swarm 实战-部署wordpress

    Docker swarm 实战-部署wordpress 创建一个overlay的网络 docker network create -d overlay demo 6imq8da3vcwvj2n499k ...

  4. mfs分布式系统从理论简介到实战部署

    文章前面想说的话:这篇博客写出来真是有点累到了,本来昨天就基本就写好了,放在草稿里面,今天打开就没有了!!唉,就尼玛离我而去了,只有重写,然后中间虚拟机还“爆炸”重启又搞了一会,不容易呀!!希望各位博 ...

  5. Jenkins+Gitlab+Ansible自动化部署(五)

    Freestyle Job实现静态网站部署交付(接Jenkins+Gitlab+Ansible自动化部署(四)https://www.cnblogs.com/zd520pyx1314/p/102445 ...

  6. Jenkins+Gitlab+Ansible自动化部署(六)

    Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...

  7. Jenkins+Gitlab+Ansible自动化部署(二)

    接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...

  8. Jenkins+Gitlab+Ansible自动化部署(三)

    接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...

  9. Jenkins+Gitlab+Ansible自动化部署(一)

    首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab  ...

随机推荐

  1. gitbook热更新时报错operation not permitted

    在使用gitbook写东西的时候,当文档内容有更新的时候,会自动更新内容到页面上,方便预览.但是,存在一个bug,就是会神奇的崩溃掉,出现如下的错误提示: Restart after change i ...

  2. 【Go语言学习笔记】Go的函数

    函数还是这几块: 参数 返回值 作用域 执行顺序 参数和返回值 func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) { //函数体 return ...

  3. 文件与文件系统的压缩与打包 tar gzip bzip2

    1:linux下常见的压缩文件后缀: .gz .zip .bz2 打包后的: .tar.gz .tar.zip .tar.bz2 2:gzip: 压缩:gzip file 解压:gunzip file ...

  4. RPC 框架 Dubbo 从理解到使用(二)

    本篇文章为系列文章,未读第一集的同学请猛戳这里:RPC 框架 Dubbo 从理解到使用(一) 本篇文章讲解 Dubbo 支持的注册中心.Dubbo 负载均衡策略和 Dubbo 控制台的安装. 注册中心 ...

  5. Mac卸载go

    1.删除go目录 一般目录是 /usr/local/go sudo rm -rf /usr/local/go 2.清除环境变量配置 3. mac安装go后自动创建的问题也需要删除 sudo rm -r ...

  6. CentOS 8.4安装Docker

    前言: Docker 是一个用于开发.传送和运行应用程序的开放平台.Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件.使用 Docker,您可以像管理应用程序一样管理基础设施.通 ...

  7. bat批处理命令及解释

    相关原文链接 一.批处理概念 批处理文件:包含DOS命令的可编辑可执行文件 批处理:可以对某一对象批量操作的文件 二.批处理命令简介 命令1~10 1 echo 和 @ 回显命令 @ #关闭单行回显 ...

  8. [cf1209E]Rotate Columns

    题意也可以理解为这样一个过程: 对于每一列,将其旋转后选出若干行上的数,要求与之前的行都不同 用$g_{i,S}$表示第$i$列选出的行数集合为$S$的最大和,$f_{i,S}$表示前$i$列$S$中 ...

  9. 2017Java前景怎么样?

    当今社会互联网软件行业属于高薪技术行业,伴随着互联网的发展Java在Web领域的优势也日渐凸显,并且java语言本身就应用最广泛,最高效.据说,全球有25亿Java器件运行着Java,450多万Jav ...

  10. 使用 SpringBoot 构建一个RESTful API

    目录 背景 创建 SpringBoot 项目/模块 SpringBoot pom.xml api pom.xml 创建 RESTful API 应用 @SpringBootApplication @C ...