1. haproxy 和 keepalived
服务器ip:192.168.0.221和192.168.0.222
软件版本:
- HA-Proxy version 1.8.8-1ubuntu0.11 2020/06/22
- Keepalived v1.3.9 (10/21,2017)
此处使用apt命令安装:1
apt install haproxy keepalived
1.1 配置keepalived的vip
配置
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
30root@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
2root@ha2:~# systemctl restart keepalived
root@ha2:~# systemctl enable keepalived将配置文件拷贝到另外一台服务器,修改相关配置文件,并重启相关服务。
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
29root@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
}
}验证ip是否漂移,关闭主服务器测试,在backup服务器查看ip是否启动。
1.2 配置haproxy
添加配置文件
1
2
3
4
5
6
7vim /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
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重启和设置开机启动
1
2root@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.2241
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
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/tomcattomcat启动
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脚本
# #########################################################
# 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 8080tomcat目录结构
/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
4root@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
安装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安装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
8wget -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
2root@ha1:~# systemctl restart jenkins
root@ha1:~# systemctl enable jenkins
3.2 jenkins web界面配置
页面访问
http://192.168.0.220:8080/
输入“管理员密码”
查看“管理员密码”
root@ha1:~# cat /var/lib/jenkins/secrets/initialAdminPassword
9514c1feef0243a7a2d8bef072be4a60
问题1:jenkins离线
修改/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>修改/var/lib/jenkins/updates/default.json
将前面的google换成baidu- 重启
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 #添加
插件安装界面:
#创建用户
安装完成:
登陆成功的界面: