#:准备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. LOTO虚拟示波器软件功能演示之——FIR数字滤波

    本文章介绍一下LOTO示波器新出的功能--FIR数字滤波的功能. 在此之前我们先来了解一下带通滤波和带阻滤波.我们都知道每个信号是不同频率不同幅值正弦波的线性叠加,为了方便直接得观察到这种现象,就有了 ...

  2. CSS学习(三)特指度和层叠

    一.特指度 特制度的一般形式是0,0,0,0 行内样式,第一位的特指度加一 id选择符,第二位的特指度加一 类选择符.属性选择符.伪类,第三位的特指度加一 元素选择符.伪元素,第四位的特指度加一 特指 ...

  3. 设计模式--策略模式Strategy

    策略模式 算法经常需要被改变==使用S 节省资源(很多if else if-.不会被执行,却会被装载到代码段) 动机 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到 ...

  4. electron获取不到remote

    electron获取不到remote 问题 // 渲染进程 let remote = require('electron').remote console.log(remote) // undefin ...

  5. LeetCode 199. 二叉树的右视图 C++ 用时超100%

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  6. MySQL、Oracle批量插入SQL的通用写法

    举个例子: 现在要批量新增User对象到数据库USER表中 public class User{ //姓名 private String name; //年龄 private Integer age; ...

  7. linux 入门系列-基础性知识

    1:初探linux-基于centos7 运维和服务器硬件组合 两种登录方式:(1)-------root:管理员登录权限较高,不建议初学者使用格式: [root@centos7 jinlong]# ( ...

  8. 『学了就忘』Linux软件包管理 — 45、yum源文件详细说明

    目录 1.yum源文件解析 2.查看yum源文件 3.搭建本地光盘yum源 第一步: 第二步: 第三步: 提示:RPM包的在线安装就是yum安装,yum安装需要依据yum源文件内容配置来寻找软件.本文 ...

  9. Roslyn 编译器Api妙用:动态生成类并实现接口

    在上一篇文章中有讲到使用反射手写IL代码动态生成类并实现接口. 反射的妙用:C#通过反射动态生成类型继承接口并实现 有位网友推荐使用 Roslyn 去脚本化动态生成,今天这篇文章就主要讲怎么使用 Ro ...

  10. 如何将rabbitmq集群中的某个节点移除.

    首先将要移除的节点停机. root@rabbitmq-03:~# rabbitmqctl stop Stopping and halting node 'rabbit@rabbitmq-03' ... ...