2020-10-23
linux
00
请注意,本文编写于 1275 天前,最后修改于 1275 天前,其中某些信息可能已经过时。

目录

1. haproxy 和 keepalived
1.1 配置keepalived的vip
1.2 配置haproxy
2. tomcat
2.1 安装jdk
2.2 安装tomcat
3. jenkines
3.1 安装jenkines
3.2 jenkins 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命令安装:

bash
apt install haproxy keepalived

1.1 配置keepalived的vip

  1. 配置
bash
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 } }
  1. 重启和设置开机启动
bash
root@ha2:~# systemctl restart keepalived root@ha2:~# systemctl enable keepalived
  1. 将配置文件拷贝到另外一台服务器,修改相关配置文件,并重启相关服务。
bash
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 } }
  1. 验证ip是否漂移,关闭主服务器测试,在backup服务器查看ip是否启动。

1.2 配置haproxy

  1. 添加配置文件
bash
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
  1. 修改内核参数
bash
# 查看内核参数是否修改: 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
  1. 重启和设置开机启动
bash
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

bash
# 解压 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下载和安装
bash
# 下载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
  1. tomcat启动
bash
# 创建用户 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
  1. 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定义
bash
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
bash
# 安装openjdk,jenkins是java程序 root@ha1:~# apt install openjdk-8-jdk # 安装daemon,jenkins启动需要的服务 root@ha1:~# apt install daemon -y
  1. 安装jenkines
# 下载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安装长期支持版本

bash
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. 启动,设置开机启动
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
bash
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>
  1. 修改/var/lib/jenkins/updates/default.json 将前面的google换成baidu
  2. 重启
bash
root@ha1:~# systemctl restart jenkins

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

插件安装

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

bash
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

本文作者:mykernel

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!