企业标准化web环境部署

1. haproxy 和 keepalived

服务器ip:192.168.0.221和192.168.0.222
软件版本:

  1. HA-Proxy version 1.8.8-1ubuntu0.11 2020/06/22
  2. Keepalived v1.3.9 (10/21,2017)

此处使用apt命令安装:

1
apt install haproxy keepalived

1.1 配置keepalived的vip

  1. 配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    root@ha1:~# cp /usr/share/doc/keepalived/samples/keepalived.conf.vrrp /etc/keepalived/keepalived.conf
    root@ha1:~# cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived

    global_defs {
    notification_email {
    acassen
    }
    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.0.227 dev eth0 label eth0:1
    }
    }
  2. 重启和设置开机启动

    1
    2
    root@ha2:~# systemctl restart keepalived
    root@ha2:~# systemctl enable keepalived
  3. 将配置文件拷贝到另外一台服务器,修改相关配置文件,并重启相关服务。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    root@ha2:~# cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived

    global_defs {
    notification_email {
    acassen
    }
    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 BACKUP #设置为backup
    interface eth0
    garp_master_delay 10
    smtp_alert
    virtual_router_id 51
    priority 80 #调低优先级
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass 1111
    }
    virtual_ipaddress {
    192.168.0.227 dev eth0 label eth0:1
    }
    }
  4. 验证ip是否漂移,关闭主服务器测试,在backup服务器查看ip是否启动。

1.2 配置haproxy

  1. 添加配置文件

    1
    2
    3
    4
    5
    6
    7
    vim /etc/haproxy/haproxy.cfg 

    listen mykerenl-web-80
    bind 192.168.0.227:80
    mode http
    server 192.168.0.223 192.168.0.223:80 check inter 2s fall 3 rise 5
    server 192.168.0.224 192.168.0.224:80 check inter 2s fall 3 rise 5
  2. 修改内核参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # 查看内核参数是否修改:
    root@ha2:~# sysctl -a |grep nonlocal
    net.ipv4.ip_nonlocal_bind = 1 # 为1 ok
    sysctl: reading key "net.ipv6.conf.all.stable_secret"
    sysctl: reading key "net.ipv6.conf.default.stable_secret"
    sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
    sysctl: reading key "net.ipv6.conf.lo.stable_secret"
    net.ipv6.ip_nonlocal_bind = 0

    # 如果为开启,需要修改
    root@ha2:~# vim /etc/sysctl.conf
    #开启
    net.ipv4.ip_nonlocal_bind = 1
    #关闭
    net.ipv4.tcp_timestamps = 0

    # 配置生效
    root@ha2:~# sysctl -p
  3. 重启和设置开机启动

    1
    2
    root@ha2:~# systemctl restart haproxy
    root@ha2:~# systemctl enable haproxy

2. tomcat

2.1 安装jdk

安装的版本为:jdk-8u141-linux-x64.tar
服务器ip:192.168.0.223和92.168.0.224

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 解压
root@tomcat1:/usr/local/src# tar xvf jdk-8u141-linux-x64.tar.gz
# 设置软连接
root@tomcat1:/usr/local/src# ln -sv /usr/local/src/jdk1.8.0_141 /usr/local/jdk
'/usr/local/jdk' -> '/usr/local/src/jdk1.8.0_141'

# 配置环境变量
root@tomcat1:/usr/local/src# vim /etc/profile

# 添加
export HISTTIMEFORMAT="%F %T `whoami` "
export export LANG="en_US.utf-8"
export JAVA_HOME=/usr/local/jdk export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

说明:192.168.0.223和92.168.0.224操作一样。

2.2 安装tomcat

  1. tomcat下载和安装

    1
    2
    3
    4
    5
    6
    # 下载apache-tomcat-8.5.59.tar.gz
    root@tomcat2:/apps# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.59/bin/apache-tomcat-8.5.59.tar.gz
    # 解压
    root@tomcat2:/apps# tar xvf apache-tomcat-8.5.59.tar.gz
    # 软连接
    root@tomcat2:/apps# ln -sv /apps/apache-tomcat-8.5.59 /apps/tomcat
  2. tomcat启动

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    # 创建用户
    root@tomcat1:/apps# useradd -m www -u 2020 -s /bin/bash
    root@tomcat1:/apps# chown www.www /apps/ -R

    # 配置tomcat脚本

    #!/bin/bash
    # #########################################################
    # Tomcat init script for "中企动力科技股份有限公司"####
    ###########################################################
    # chkconfig: 2345 96 14 ###################################
    # description: 2016/11/1. 张士杰##########################
    # #########################################################

    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
    }
    restart() {
    stop
    start
    }

    case "$1" in
    start)
    start
    ;;

    stop)
    stop
    ;;

    restart)
    restart
    ;;

    *)
    echo $"Usage: $0 {start|stop|restart|status}"
    esac

    # 运行tomcat:
    root@tomcat1:/# bash /etc/init.d/tomcat start

    # 查看端口是否监听
    ss -ntlp|grep 8080
  3. tomcat目录结构
    /data/tomcat/tomcat_appdir #保存web压缩包
    myapp_xxx_1.tar.gz
    myapp_xxx_3.tar.gz
    myapp_xxx_2.tar.gz
    /data/tomcat/tomcat_webdir #保存解压后的web目录
    myapp_xxx_1
    myapp_xxx_2
    myapp_xxx_3
    /data/tomcat/tomcat_webapps #tomcat app加载目录,在server.xml定义

    1
    2
    3
    4
    root@tomcat1:/apps/tomcat/conf# vim /apps/tomcat/conf/server.xml 
    <Host name="localhost" appBase="/data/tomcat/tomcat_webapps" unpackWARs="true" autoDeploy="true">

    /data/tomcat/tomcat_webapps/myapp --> /data/tomcat/tomcat_webdir/myapp_xxx_1

3. jenkines

jenkins版本:jenkins_2.204
ip:192.168.0.220和192.168.0.221

3.1 安装jenkines

  1. 安装daemo和openjdk

    1
    2
    3
    4
    5
    # 安装openjdk,jenkins是java程序
    root@ha1:~# apt install openjdk-8-jdk

    # 安装daemon,jenkins启动需要的服务
    root@ha1:~# apt install daemon -y
  2. 安装jenkines

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # 下载jenkins
    root@ha1:~# wget https://mirror.tuna.tsinghua.edu.cn/jenkins/debian/jenkins_2.204_all.deb
    # 安装jenkins
    root@ha1:~# dpkg -i jenkins_2.204_all.deb

    # 修改配置文件
    root@ha1:~# grep "^[a-Z]" /etc/default/jenkins
    NAME=jenkins
    JAVA_ARGS="-Djava.awt.headless=true"
    PIDFILE=/var/run/$NAME/$NAME.pid
    JENKINS_USER=$NAME
    JENKINS_GROUP=$NAME
    JENKINS_WAR=/usr/share/$NAME/$NAME.war
    JENKINS_HOME=/var/lib/$NAME
    RUN_STANDALONE=true
    JENKINS_LOG=/var/log/$NAME/$NAME.log
    JENKINS_ENABLE_ACCESS_LOG="no"
    MAXOPENFILES=65536 #修改
    HTTP_PORT=8080
    PREFIX=/$NAME
    JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT"

centos安装长期支持版本

1
2
3
4
5
6
7
8
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum upgrade
yum install jenkins java-1.8.0-openjdk-devel
systemctl daemon-reload

# 配置文件位置
vim /etc/sysconfig/jenkins

  1. 启动,设置开机启动
    1
    2
    root@ha1:~# systemctl restart jenkins
    root@ha1:~# systemctl enable jenkins

3.2 jenkins web界面配置

页面访问
http://192.168.0.220:8080/

输入“管理员密码”

image-20201024100015082

查看“管理员密码”
root@ha1:~# cat /var/lib/jenkins/secrets/initialAdminPassword
9514c1feef0243a7a2d8bef072be4a60

问题1:jenkins离线

  1. 修改/var/lib/jenkins/hudson.model.UpdateCenter.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    root@ha1:~# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
    <?xml version='1.1' encoding='UTF-8'?>
    <sites>
    <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
    ## 如果还是失败,可以使用http
    </site>
    </sites>
  2. 修改/var/lib/jenkins/updates/default.json
    将前面的google换成baidu

  3. 重启
    1
    root@ha1:~# systemctl restart jenkins

安装插件,推荐使用“安装推荐的插件”

插件安装

提速:
配置插件代理服务器,此处使用192.168.0.223配置一个nginx,做一个rewrite操作。在主配置文件加入一个location:

location /download/plugins         
{         
          proxy_set_header Host mirrors.tuna.tsinghua.edu.cn;         
          proxy_set_header X-Real-IP $remote_addr;         
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
             rewrite /download/plugins(.*) /jenkins/plugins/$1 break; 
             proxy_pass http://mirrors.tuna.tsinghua.edu.cn; 
    }


# jenkins服务器修改host指向该服务器地址
root@ha1:~# cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    ubuntu-template.magedu.local    ubuntu-template

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.0.223 updates.jenkins-ci.org #添加

插件安装界面:

image-20201024102705585

#创建用户

image-20201024102809356

image-20201024102846927

安装完成:

image-20201024102916843

登陆成功的界面:

image-20201024103004369

---------------- 谢谢光临 ----------------

本文标题:企业标准化web环境部署

文章作者:pxrux

发布时间:2020年10月23日 - 00:10

最后更新:2020年10月23日 - 00:10

原始链接:http://www.mykernel.cn/web_basic.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%