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相关推荐

  1. 【DevOps实战|基于Jenkins与Gitlab构建企业级持续集成环境系统】(Jenkins+Gitlab+Keepalived+Haproxy+Sonarqube+Http+灰度自动部署)

    目录 一.DevOps简介 二.CI/CD简介 1.代码部

  2. PostgreSQL 9.6 keepalived主从部署

    ## 环境: PostgreSQL版:9.6 角色                     OS                    IP master                 CentOS ...

  3. k8s+gitlab+jenkins+harbor(李作强)

    ​harbor企业级私有镜像仓库:(单独的机器或者安装在node节点上) # git安装文档 https://github.com/goharbor/harbor/blob/master/docs/i ...

  4. GitLab安装说明

    GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用. gitlab是基于Ruby on Rails的, ...

  5. git ssh创建分支_Git(2):在gitlab中创建开发用户,以及master分支的安全管理

    一.创建用户 1.创建管理gitlab的开发人员的用户 2.配置用户信息 3.将用户添加到java-daem组中 4.用户登录成功后,在用户界面为用户添加ssh认证 5.在linux主机中将maste ...

  6. 路由器snmp配置_基于keepalived配置数据库主从实现高可用

    基于keepalived配置数据库主从实现高可用 使用keepalived来监听端口,实现数据库的高可用.实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后, ...

  7. centos gitlab mysql_CentOS-7下yum安装GitLab-CE

    GitLab介绍 gitlab 不用说,大家都知道是做什么的,gitlab 分为 Gitlab Community Edition(gitlab社区版又称gitlab-ce).Gitlab Enter ...

  8. Pycharm上传Gitlab

    第一步:在Gitlab创建新项目 第二步:更改工程文件名(一定要确保所有文件名称一致,否则会出现其他问题) 第三步:创建本地git链接,如下操作 第四步:选择需要上传的文件,并查看是否创建.git文件 ...

  9. gitlab如何克隆项目到本地进行开发,如何让webstorm项目右键菜单出现Git子菜单,右下角出现Matser分支

    cd 到盘符 例如D:. cd 到您的项目目录 去gitlab对应项目拷贝http的克隆地址 然后在gitlab命令窗口输入  git clone http://192.168.2.231/knoww ...

最新文章

  1. dede login.php,DedeCms会员登录成功,又跳转到登录页面
  2. 得到课程《组织行为学》学习笔记07
  3. 显卡给2个虚拟机_Java虚拟机线上问题排查的2个基本操作,你知不知道?
  4. varnish使用汇总
  5. extract提取返回结果中的内容_httprunner如何提取数据串联上下游接口
  6. 在.Net中执行js
  7. 将linux用在开发环境中
  8. java 运算符的程序_【Java】运算符
  9. Spring Mvc:用MultiPartFile上传单个文件,多个文件
  10. Linux安装和卸载JDK8详解
  11. ibm服务器系统密码忘记,ibm x3850 x5服务器忘记密码了_服务器维修
  12. 常见的HTTP状态码大全
  13. 1、项目搭建、本地视频列表展示
  14. ORL、Yale等人脸数据库百度云链接
  15. 包图 包图网 免费psd素材分享
  16. DCDC电源中同步与异步的区别
  17. mysql8更改区分大小写_mysql 8 大小写修改问题
  18. 30岁自学python找工作-自学编程的30岁男人,能按应届生那样找工作吗?
  19. java Object class分析
  20. OMCI协议二层功能的模型选择

热门文章

  1. codeblock下载
  2. spring mvc错误收集
  3. mysql增量备份保留策略_Mysql备份策略-完成备份+增量备份shell
  4. python: 判断字符串是否为合法的json格式
  5. 《美团点评》编程题---有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印
  6. Spark Standalone模式应用程序开发
  7. 三种通用应用层协议protobuf、thrift、avro对比
  8. Spark内存管理(3)—— 统一内存管理设计理念
  9. JMP Discovery Summit数据分析峰会登陆中国
  10. ExecutorCompletionService分析及使用