gitlab+keepalived
1. 192.168.1.247 节点01
1.1 安装keepalived01
```bash
root@ubuntu-server03:~# apt-cache search keepalived
keepalived - Failover and monitoring daemon for LVS clusters
root@ubuntu-server03:~# apt-cache policy keepalived
keepalived:
已安装: 1:1.2.7-1ubuntu1
候选软件包:1:1.2.7-1ubuntu1
版本列表:
1:1.2.13-1~ubuntu14.04.1 0
100 http://mirrors.163.com/ubuntu/ trusty-backports/main amd64 Packages
*** 1:1.2.7-1ubuntu1 0
500 http://mirrors.163.com/ubuntu/ trusty/main amd64 Packages
100 /var/lib/dpkg/status
root@ubuntu-server03:~# apt-get install -y keepalived
root@ubuntu-server03:~# dpkg -l | grep keepalived
ii keepalived 1:1.2.7-1ubuntu1 amd64 Failover and monitoring daemon for LVS clusters
```
1.2 配置keepalived01
```bash
root@ubuntu-server03:~# cat /etc/keepalived/keepalived.conf
global_defs { #自由定义
notification_email {
xxxxx@mail.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 51
}
vrrp_script chk_gitlab {
script "/etc/keepalived/check_gitlab.sh" #定义一个监测脚本
interval 2 #脚本执行频率(单位:s)
}
vrrp_script check_mysqld {
script "/etc/keepalived/check_mysql.sh" #定义一个监测脚本
interval 2
}
vrrp_instance VI_1 {
state BACKUP #两个主机都写BACKUP即可
nopreempt #非抢占模式,只需要在主设置即可
interface em1 #绑定的网卡
virtual_router_id 51 #两个主机id一致
mcast_src_ip 192.168.1.247 #vrrp实体服务器的IP
priority 100 #权重高于另一个即可
advert_int 1
authentication {
auth_type PASS #验证方式
auth_pass chtopnet
}
virtual_ipaddress {
192.168.1.245/24 #虚拟IP
}
track_script {
check_mysqld #应用监测脚本
chk_gitlab
}
}
root@ubuntu-server03:~# service keepalived restat
```
2. 192.168.1.248 节点02
2.1 安装keepalived02
安装步骤和keepalived01 一样
2.3 配置keepalived02
```bash
root@ubuntu-server04:~# cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
xxxxx@mail.com
}
notification_email_from keepalived@chtopnet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 51
}
vrrp_script chk_gitlab {
script "/etc/keepalived/check_gitlab.sh"
interval 2
}
vrrp_script check_mysqld {
script "/etc/keepalived/check_mysql.sh"
interval 2
}
vrrp_instance VI_1 {
state BACKUP
interface em1
virtual_router_id 51
mcast_src_ip 192.168.1.248
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.1.245/24
}
track_script {
check_mysqld
chk_gitlab
}
}
root@ubuntu-server04:~# service keepalived restat
```
3. 监测脚本
check\_gitlab.sh
```bash
root@ubuntu-server03:~# cat /etc/keepalived/check_gitlab.sh
#!/bin/bash
container_state=`docker ps -a | grep gitlabnew_boxfish-gitlab | awk '{print $1}' | xargs docker inspect --format='{{.State.Status}}'`
if [ ${container_state} = "running" ]; then
exit 0
else
exit 1
fi
```
check\_gitlab.sh
```bash
root@ubuntu-server04:~# cat /etc/keepalived/check_mysql.sh
#!/bin/bash
Mysqlbin=/usr/bin/mysql
user=root
pw='boxfish123'
port=3306
host=127.0.0.1
sbm=120
#Check for $Mysqlbin
if [ ! -f $Mysqlbin ];then
echo 'Mysqlbin not found,check the variable Mysqlbin'
exit 99
fi
#Get Mysql Slave Status
IOThread=`$Mysqlbin -h $host -P $port -u$user -p$pw -e 'show slave status\G' 2>/dev/null|grep 'Slave_IO_Running:'|awk '{print $NF}'`
SQLThread=`$Mysqlbin -h $host -P $port -u$user -p$pw -e 'show slave status\G' 2>/dev/null|grep 'Slave_SQL_Running:'|awk '{print $NF}'`
SBM=`$Mysqlbin -h $host -P $port -u$user -p$pw -e 'show slave status\G' 2>/dev/null|grep 'Seconds_Behind_Master:'|awk '{print $NF}'`
#Check if the mysql run
if [[ -z "$IOThread" ]];then
exit 1
fi
#Check if the thread run
if [[ "$IOThread" = "No" || "$SQLThread" = "No" ]];then
exit 1
elif [[ $SBM -ge $sbm ]];then
exit 1
else
exit 0
fi
```
转载于:https://www.cnblogs.com/jin-yuana/p/9791883.html
gitlab+keepalived相关推荐
- 【DevOps实战|基于Jenkins与Gitlab构建企业级持续集成环境系统】(Jenkins+Gitlab+Keepalived+Haproxy+Sonarqube+Http+灰度自动部署)
目录 一.DevOps简介 二.CI/CD简介 1.代码部
- PostgreSQL 9.6 keepalived主从部署
## 环境: PostgreSQL版:9.6 角色 OS IP master CentOS ...
- k8s+gitlab+jenkins+harbor(李作强)
harbor企业级私有镜像仓库:(单独的机器或者安装在node节点上) # git安装文档 https://github.com/goharbor/harbor/blob/master/docs/i ...
- GitLab安装说明
GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用. gitlab是基于Ruby on Rails的, ...
- git ssh创建分支_Git(2):在gitlab中创建开发用户,以及master分支的安全管理
一.创建用户 1.创建管理gitlab的开发人员的用户 2.配置用户信息 3.将用户添加到java-daem组中 4.用户登录成功后,在用户界面为用户添加ssh认证 5.在linux主机中将maste ...
- 路由器snmp配置_基于keepalived配置数据库主从实现高可用
基于keepalived配置数据库主从实现高可用 使用keepalived来监听端口,实现数据库的高可用.实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后, ...
- centos gitlab mysql_CentOS-7下yum安装GitLab-CE
GitLab介绍 gitlab 不用说,大家都知道是做什么的,gitlab 分为 Gitlab Community Edition(gitlab社区版又称gitlab-ce).Gitlab Enter ...
- Pycharm上传Gitlab
第一步:在Gitlab创建新项目 第二步:更改工程文件名(一定要确保所有文件名称一致,否则会出现其他问题) 第三步:创建本地git链接,如下操作 第四步:选择需要上传的文件,并查看是否创建.git文件 ...
- gitlab如何克隆项目到本地进行开发,如何让webstorm项目右键菜单出现Git子菜单,右下角出现Matser分支
cd 到盘符 例如D:. cd 到您的项目目录 去gitlab对应项目拷贝http的克隆地址 然后在gitlab命令窗口输入 git clone http://192.168.2.231/knoww ...
最新文章
- dede login.php,DedeCms会员登录成功,又跳转到登录页面
- 得到课程《组织行为学》学习笔记07
- 显卡给2个虚拟机_Java虚拟机线上问题排查的2个基本操作,你知不知道?
- varnish使用汇总
- extract提取返回结果中的内容_httprunner如何提取数据串联上下游接口
- 在.Net中执行js
- 将linux用在开发环境中
- java 运算符的程序_【Java】运算符
- Spring Mvc:用MultiPartFile上传单个文件,多个文件
- Linux安装和卸载JDK8详解
- ibm服务器系统密码忘记,ibm x3850 x5服务器忘记密码了_服务器维修
- 常见的HTTP状态码大全
- 1、项目搭建、本地视频列表展示
- ORL、Yale等人脸数据库百度云链接
- 包图 包图网 免费psd素材分享
- DCDC电源中同步与异步的区别
- mysql8更改区分大小写_mysql 8 大小写修改问题
- 30岁自学python找工作-自学编程的30岁男人,能按应届生那样找工作吗?
- java Object class分析
- OMCI协议二层功能的模型选择
热门文章
- codeblock下载
- spring mvc错误收集
- mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell
- python: 判断字符串是否为合法的json格式
- 《美团点评》编程题---有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印
- Spark Standalone模式应用程序开发
- 三种通用应用层协议protobuf、thrift、avro对比
- Spark内存管理(3)—— 统一内存管理设计理念
- JMP Discovery Summit数据分析峰会登陆中国
- ExecutorCompletionService分析及使用