@[tcl]
merge之后两个同步?
git
git下载
yum install git -y
git使用演示
第一步:创建目录
[root@ken ~]# mkdir /ken2
[root@ken ~]# cd /ken2
第二步:初始化git工作目录
[root@ken ken2]# git init
Initialized empty Git repository in /ken2/.git/
[root@ken ken2]# ls -a
. .. .git
第三步:创建普通文件
[root@ken ken2]# echo “111” > test
[root@ken ken2]# cat test
111
第四步:提交至暂存区域
[root@ken ken2]# git add .
第五步:提交至仓库
[root@ken ken2]# git config –global user.email “you@example.com”
[root@ken ken2]# git config –global user.name “Your Name”
[root@ken ken2]# git commit -m “v1”
第六步:查看历史版本
[root@ken ken2]# git log
commit 76381cb8b768643d42bf481b9544abeb43064598
Author: Your Name you@example.com
Date: Fri Jun 28 10:10:51 2019 +0800
v1
第七步:再次提交新的版本
[root@ken ken2]# echo “222” >> test
[root@ken ken2]# git add .
[root@ken ken2]# git commit -m “v2”
[master c87fcbd] v2
1 file changed, 1 insertion(+)
[root@ken ken2]# git log
commit c87fcbdf12c541485a9ad1503fb0ed012b83ae27
Author: Your Name you@example.com
Date: Fri Jun 28 10:11:49 2019 +0800
v2
commit 76381cb8b768643d42bf481b9544abeb43064598
Author: Your Name you@example.com
Date: Fri Jun 28 10:10:51 2019 +0800
v1
第八步:回滚到v1版本
[root@ken ken2]# git reset –hard 76381cb8b
HEAD is now at 76381cb v1
[root@ken ken2]#
[root@ken ken2]#
[root@ken ken2]# cat test
111
git常用操作
add 添加文件至暂存区域
branch 查看和设置分支
checkout 回滚及切换分支
clone 克隆远程仓库
commit 提交暂存区域的文件至仓库
init 初始化工作目录
log 查看历史版本
merge 合并分支
push 推送本地文件至远程仓库
reset 版本回滚
status 查看文件状态
例子1:撤销工作区的内容
[root@ken ken2]# echo “333” >> test
[root@ken ken2]# git status
# On branch master
# Changes not staged for commit:
# (use “git add <file>…” to update what will be committed)
# (use “git checkout — <file>…” to discard changes in working directory)
#
# modified: test
#
no changes added to commit (use “git add” and/or “git commit -a”)
[root@ken ken2]# status ^C
[root@ken ken2]# git checkout — test
[root@ken ken2]# git status
# On branch master
nothing to commit, working directory clean
[root@ken ken2]# cat test
111
例子2:撤销暂存区域的文件
[root@ken ken2]# echo “333” >> test
[root@ken ken2]# git add .
[root@ken ken2]# git status
# On branch master
# Changes to be committed:
# (use “git reset HEAD <file>…” to unstage)
#
# modified: test
#
[root@ken ken2]# git reset HEAD test
Unstaged changes after reset:
M test
[root@ken ken2]# git status
# On branch master
# Changes not staged for commit:
# (use “git add <file>…” to update what will be committed)
# (use “git checkout — <file>…” to discard changes in working directory)
#
# modified: test
#
no changes added to commit (use “git add” and/or “git commit -a”)
[root@ken ken2]# git checkout — test
[root@ken ken2]# git status
# On branch master
nothing to commit, working directory clean
[root@ken ken2]# cat test
111
例子3:版本回滚
[root@ken ken2]# echo “333” >> test
[root@ken ken2]# git add .
[root@ken ken2]# git commit -m “v3”
[master f0752d2] v3
1 file changed, 1 insertion(+)
[root@ken ken2]# git log
commit f0752d209969a2e79114277d9a20ece1c2c27efe
Author: Your Name you@example.com
Date: Fri Jun 28 10:34:49 2019 +0800
v3
commit 76381cb8b768643d42bf481b9544abeb43064598
Author: Your Name you@example.com
Date: Fri Jun 28 10:10:51 2019 +0800
v1
[root@ken ken2]# cat test
111
333
[root@ken ken2]# git reset –hard 76381cb
HEAD is now at 76381cb v1
[root@ken ken2]# cat test
111
再次恢复到v2版本
[root@ken ken2]# git reflog
76381cb HEAD@{0}: reset: moving to 76381cb
f0752d2 HEAD@{1}: commit: v3
76381cb HEAD@{2}: reset: moving to 76381cb8b
c87fcbd HEAD@{3}: commit: v2
76381cb HEAD@{4}: commit (initial): v1
[root@ken ken2]# git reset –hard c87fcbd
HEAD is now at c87fcbd v2
[root@ken ken2]# cat test
111
222
恢复到v3版本
[root@ken ken2]# git reflog
c87fcbd HEAD@{0}: reset: moving to c87fcbd
76381cb HEAD@{1}: reset: moving to 76381cb
f0752d2 HEAD@{2}: commit: v3
76381cb HEAD@{3}: reset: moving to 76381cb8b
c87fcbd HEAD@{4}: commit: v2
76381cb HEAD@{5}: commit (initial): v1
[root@ken ken2]# git reset –hard f0752d2
HEAD is now at f0752d2 v3
[root@ken ken2]# cat test
111
333
git分支
例子1:分支使用
[root@ken ken2]# git branch
- master
[root@ken ken2]# git branch ken
[root@ken ken2]# git branch
ken
- master
[root@ken ken2]# git checkout ken
Switched to branch ‘ken’
[root@ken ken2]# git branch
- ken
master
[root@ken ken2]# echo “ken” >> test
[root@ken ken2]# git add .
[root@ken ken2]# git commit -m “v4”
[ken 11651cb] v4
1 file changed, 1 insertion(+)
[root@ken ken2]# git checkout master
Switched to branch ‘master’
[root@ken ken2]# cat test
111
333
[root@ken ken2]# git log
commit f0752d209969a2e79114277d9a20ece1c2c27efe
Author: Your Name you@example.com
Date: Fri Jun 28 10:34:49 2019 +0800
v3
commit 76381cb8b768643d42bf481b9544abeb43064598
Author: Your Name you@example.com
Date: Fri Jun 28 10:10:51 2019 +0800
v1
[root@ken ken2]# git merge ken
Updating f0752d2…11651cb
Fast-forward
test | 1 +
1 file changed, 1 insertion(+)
[root@ken ken2]# cat test
111
333
ken
[root@ken ken2]# git log
commit 11651cb4f8687699b2875ab4c90eb1ebcb2efaec
Author: Your Name you@example.com
Date: Fri Jun 28 10:52:08 2019 +0800
v4
commit f0752d209969a2e79114277d9a20ece1c2c27efe
Author: Your Name you@example.com
Date: Fri Jun 28 10:34:49 2019 +0800
v3
commit 76381cb8b768643d42bf481b9544abeb43064598
Author: Your Name you@example.com
Date: Fri Jun 28 10:10:51 2019 +0800
v1
搭建gitlab
安装本地gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
yum localinstall gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
第一步:下载gitlab软件包
[root@ken ~]# yum install gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm java -y
第二步:修改配置文件
[root@ken ~]# vim /etc/gitlab/gitlab.rb
external_url ‘http://192.168.64.4’ #本机ip
第三步:重新配置gitlab
[root@ken ~]# gitlab-ctl reconfigure
第四步:访问gitlab
ip:80
实现负载均衡加高可用方案
方案一:nginx+keepalived
方案二:lvs+keepalived
LVS负载均衡
作用:实现负载均衡
lvs简介
LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。
LVS采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性
特点
跨平台:window,linux
作用
实现负载均衡
核心组件
ip_vs:linux的内核功能模块,工作在内核,依赖该内核模块实现负载均衡功能
ipvsadm:应用层程序,该程序可以和内核中的ip_vs模块通信,实现对负载均衡的管理和控制
ipvsadm参数详解
-A:添加一个虚拟服务(添加vip)
-C:清空规则表
-a:指定在虚拟服务中添加RS节点
-t service-address[:port]:该规则是对tcp协议的请求做调度
-r: 指定真实服务器的地址(remote)
-g:指定用DR模式(默认)
-s 指定调度算法
实例1:LVS的DR模式使用
环境准备:
lvs服务器:192.168.64.4
后端节点1:192.168.64.5
后端节点2:192.168.64.7
VIP:192.168.64.10
第一步:lvs服务器端下载ipvsadm
[root@ken ~]# yum install ipvsadm -y
第二步:给lvs服务器端绑定VIP
[root@ken ~]# ip a a 192.168.64.10/24 dev eth0
第三步:ipvsadm添加调度规则
[root@ken ~]# ipvsadm -A -t 192.168.64.10:80 -s rr
第四步:查看ipvsadm规则
[root@ken ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.64.10:80 rr
第五步:添加后端节点
[root@ken ~]# ipvsadm -a -t 192.168.64.10:80 -r 192.168.64.5:80 -g
[root@ken ~]# ipvsadm -a -t 192.168.64.10:80 -r 192.168.64.7:80 -g
第六步:再次查看ipvsadm规则
[root@ken ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.64.10:80 rr
-> 192.168.64.5:80 Route 1 0 0
-> 192.168.64.7:80 Route 1 0 0
第七步:配置后端节点,先下载httpd
[root@ken ~]# yum install httpd -y
第八步:启动后端节点的apache
[root@ken ~]# systemctl restart httpd
第九步:执行下面的脚本
#!/bin/bash
ip a a 192.168.64.10/32 dev lo:0
echo “1”>/proc/sys/net/ipv4/conf/lo/arp_ignore
echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2”>/proc/sys/net/ipv4/conf/lo/arp_announce
echo “2”>/proc/sys/net/ipv4/conf/all/arp_announce
第十步:访问VIP
keepalived
实例2:keepalived+lvs
主调度器:192.168.64.4
备调度器:192.168.64.8
后端节点1: 192.168.64.5
后端节点2: 192.168.64.7
VIP: 192.168.64.10
第一步:两个调度节点需要执行下面的操作
[root@ken ~]# yum install ipvsadm keepalived -y
第二步:配置主调度器的keepalived配置文件
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id d1 #每台节点确保名称不一致
vrrp_skip_check_adv_addr
#vrrp_strict #注释改行
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER #主节点不需要更改
interface eth0 #网卡名称
virtual_router_id 51
priority 150 #优先级要比备节点高于50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.64.10/24 #VIP地址
}
}
virtual_server 192.168.64.10 80 { #后端节点IP
delay_loop 6
lb_algo rr
lb_kind DR #改成DR模式
persistence_timeout 50
protocol TCP
real_server 192.168.64.5 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.64.7 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
第三步:把主节点配置好的keepalived的文件发送到备用节点
[root@ken ~]# scp /etc/keepalived/keepalived.conf 192.168.64.8:/etc/keepalived/
第四步:在备用节点修改keepalived文件
只需要修改三处
router_id d2
state BACKUP
priority 100
第五步:清空之前配置的ipvsadm规则及VIP
[root@ken ~]# ipvsadm -C
[root@ken ~]# ip a d 192.168.64.10/24 dev eth0
第六步:重启主调度器及备调度器keepalived
[root@ken ~]# ip a
[root@ken ~]# ipvsadm -L -n