gitlab搭建+主從實時同步

本文參考:http://www.reibang.com/p/52de6a8d29d6
https://www.cnblogs.com/netonline/archive/2017/10/13/7660767.html

lsyncd復(fù)制+pgsql復(fù)制

1.安裝gitlab (主惨撇、從)

* 配置yum源

vi /etc/yum.repos.d/gitlab-ce.repo

復(fù)制以下內(nèi)容:

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

* 更新本地yum緩存

yum makecache

* 安裝GitLab社區(qū)版

yum install gitlab-ce #自動安裝最新版本

注:若需安裝指定版本弃衍,則添加版本號即可,即yum install gitlab-ce-x.x.x

* 加載配置文件

gitlab-ctl reconfigure

* 修改配置文件

vim /etc/gitlab/gitlab.rb # 修改默認的配置文件耿战;
Image.png
Image [1].png

* 修改域名

vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
Image [2].png

* 修改GitLab服務(wù)端口

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
Image [3].png

* 啟動服務(wù)

gitlab-ctl start # 啟動所有 gitlab 組件帆啃;

* GitLab常用命令


gitlab-ctl start # 啟動所有 gitlab 組件鱼喉;
gitlab-ctl stop # 停止所有 gitlab 組件;
gitlab-ctl restart # 重啟所有 gitlab 組件模她;
gitlab-ctl status # 查看服務(wù)狀態(tài)稻艰;
gitlab-ctl reconfigure # 啟動服務(wù);(重新加載配置文件缝驳,在GitLab初次安裝后可以使用连锯,但是在業(yè)務(wù)環(huán)境中不可隨意使用,reconfigure會把一些過去的config還原用狱,導致修改的端口以及域名等都沒有了运怖。)
vim /etc/gitlab/gitlab.rb # 修改默認的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 檢查gitlab夏伊;
sudo gitlab-ctl tail # 查看日志摇展;

使用lsyncd復(fù)制數(shù)據(jù)

2.安裝lsyncd(主)

yum install epel-release

 yum install lsyncd

* 修改配置文件

vi /etc/lsyncd.conf 
settings {
    logfile ="/var/log/lsyncd/lsyncd.log",
    statusFile ="/var/log/lsyncd/lsyncd.status",
    inotifyMode = "CloseWrite",
    maxProcesses = 8,#同時最大起的rsync進程數(shù),一個rsync同步一個文件
    }


-- IV. 遠程目錄同步溺忧,rsync模式 + ssh shell
sync {
    default.rsync,
    source    = "/var/opt/gitlab",#源目錄咏连,路徑使用絕對路徑
    target    = "root@192.168.1.6:/var/opt/gitlab/",#目標目錄
    -- 上面target,注意如果是普通用戶鲁森,必須擁有寫權(quán)限
    exclude = { "backups", "gitlab-ci", "sockets", "gitlab.yml", "redis", "postmaster.pid","recovery.conf","postgresql.conf","pg_hba.conf"},
    maxDelays = 5,#統(tǒng)計到多少次監(jiān)控事件即開始一次同步
    delay = 30,#若30s內(nèi)未出發(fā)5次監(jiān)控事件祟滴,則每30s同步一次
    -- init = true,
    rsync     = {
        binary = "/usr/bin/rsync",#rsync可執(zhí)行文件
        archive = true,#保持文件所有屬性
        compress = true,#壓縮傳輸,是否開啟取決于帶寬及cpu
        bwlimit   = 2000 #限速 kb/s
        -- rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
        -- 如果要指定其它端口歌溉,請用上面的rsh
        }
    }

3垄懂、配置免密登錄

* 生成秘鑰

通過命令”ssh-keygen -t rsa“骑晶,生成之后會在用戶的根目錄生成一個 “.ssh”的文件夾

ssh-keygen -t rsa
Image [4].png

vi ~/.ssh/known_hosts #刪除對應(yīng)ip的相關(guān)rsa信息

* 發(fā)送公鑰到從機

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.6

4、重啟lsyncd服務(wù)

systemctl restart lsyncd

5草慧、從機也要安裝lsyncd服務(wù)

6桶蛔、需要重起postgresql (從)

gitlab-ctl stop postgresql

gitlab-ctl start postgresql

gitlab的PostgresSQL復(fù)制

只使用lsyncd對代碼層是好使的,但是如果涉及到用戶的操作漫谷,會導致失敗仔雷,從庫的PostgresSQL起不起來,所以在上面的基礎(chǔ)上舔示,再做一個PostgresSQL的復(fù)制碟婆。

1、主庫配置

* 創(chuàng)建一個有登錄和復(fù)制權(quán)限的賬號

由于gitlab上的postgresql已經(jīng)創(chuàng)建了復(fù)制賬號斩郎,所以不用再創(chuàng)建
有賬號可不必進行下面的操作
登錄PostgresSQL

su - gitlab-psql
psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
Image [5].png
select * from pg_roles;
Image [6].png

否則創(chuàng)建賬號

postgres=#create role repl login replication encrypted password 'repl@123';

* 認證文件pg_hba.conf

cd /var/opt/gitlab/postgresql/data
vi pg_hba.conf 

在最下面添加可訪問遠程ip脑融,trust代表不需要密碼訪問

host  replication gitlab_replicator 192.168.1.6/32 trust
Image [7].png

* 修改配置文件

vi postgresql.conf

修改如下內(nèi)容

#監(jiān)聽服務(wù)器
listen_addresses = '*'

#主從設(shè)置為熱備模式喻频,流復(fù)制必選參數(shù)
wal_level = hot_standby

#流復(fù)制允許的連接進程缩宜,一般同standby數(shù)量一致
max_wal_senders = 2

#流復(fù)制在沒有基于文件的連續(xù)歸檔時,主服務(wù)器可能在備機收到WAL日志前回收這些舊的WAL甥温,此時備機需要重新從一個新的基礎(chǔ)備份初始化锻煌;可設(shè)置wal_keep_segments為一個足夠高的值來確保舊的WAL段不會被太早重用;1個WAL日志為16MB姻蚓,所以在設(shè)置wal_keep_segments時宋梧,在滿足空間的前提下可以盡量設(shè)置大一些
wal_keep_segments = 64

* 重啟服務(wù)

gitlab-ctl restart postgresql

2、從庫配置

* 備份主庫的數(shù)據(jù)

備份之前先把主庫的lsyncd服務(wù)停掉狰挡,否則會同步主庫數(shù)據(jù)捂龄,清空data目錄

cd /opt/gitlab/embedded/postgresql/9.6/bin

./pg_basebackup -h 192.168.1.9 -p 5432 -U gitlab_replicator -F p -P -D  /var/opt/gitlab/postgresql/data/

* 賦予備份目錄權(quán)限

chown -R gitlab-psql:root  /var/opt/gitlab/postgresql/data/

* 修改從庫配置文件postgresql.conf

cd /var/opt/gitlab/postgresql/data/
vi postgresql.conf
#在基礎(chǔ)備份時,初始化文件是從主庫復(fù)制來的加叁,所以配置文件一致倦沧,可將wal_level,max_wal_senders與wal_keep_segments等參數(shù)注釋它匕,以下是新增或修改的參數(shù)

#在備份的同時允許查詢
hot_standby = on

#可選展融,流復(fù)制最大延遲
max_standby_streaming_delay = 30s

#可選,從向主報告狀態(tài)的最大間隔時間
wal_receiver_status_interval = 10s

#可選豫柬,查詢沖突時向主反饋
hot_standby_feedback = on

#默認參數(shù)告希,非主從配置相關(guān)參數(shù),表示到數(shù)據(jù)庫的連接數(shù)烧给,一般從庫做主要的讀服務(wù)時燕偶,設(shè)置值需要高于主庫
max_connections = 1000

* 修改恢復(fù)文件recovery.conf

復(fù)制文件

 cp /opt/gitlab/embedded/postgresql/9.6/share/recovery.conf.sample ./recovery.conf

更改文件所屬

chown gitlab-psql:root recovery.conf

修改文件

vi recovery.conf

#指明從庫身份
standby_mode = on

#連接到主庫信息
primary_conninfo = 'host=192.168.1.9 port=5432 user=gitlab_replicator'

#同步到最新數(shù)據(jù)
recovery_target_timeline = 'latest'

* 重啟服務(wù)

gitlab-ctl restart postgresql

啟動主庫的lsyncd服務(wù)

systemctl restart lsyncd

* 驗證

主庫sender進程

 ps -ef | grep postgres
Image [8].png

從庫receiver進程

 ps -ef | grep postgres
Image [9].png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市础嫡,隨后出現(xiàn)的幾起案子指么,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涧尿,死亡現(xiàn)場離奇詭異系奉,居然都是意外死亡,警方通過查閱死者的電腦和手機姑廉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門缺亮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桥言,你說我怎么就攤上這事萌踱。” “怎么了号阿?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵并鸵,是天一觀的道長。 經(jīng)常有香客問我扔涧,道長园担,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任枯夜,我火速辦了婚禮弯汰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘湖雹。我一直安慰自己咏闪,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布摔吏。 她就那樣靜靜地躺著鸽嫂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪征讲。 梳的紋絲不亂的頭發(fā)上据某,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音稳诚,去河邊找鬼哗脖。 笑死,一個胖子當著我的面吹牛扳还,可吹牛的內(nèi)容都是我干的才避。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼氨距,長吁一口氣:“原來是場噩夢啊……” “哼桑逝!你這毒婦竟也來了俏让?” 一聲冷哼從身側(cè)響起楞遏,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤茬暇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后寡喝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糙俗,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年预鬓,在試婚紗的時候發(fā)現(xiàn)自己被綠了巧骚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡格二,死狀恐怖劈彪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顶猜,我是刑警寧澤沧奴,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站长窄,受9級特大地震影響滔吠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抄淑,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一屠凶、第九天 我趴在偏房一處隱蔽的房頂上張望驰后。 院中可真熱鬧肆资,春花似錦、人聲如沸灶芝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夜涕。三九已至犯犁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間女器,已是汗流浹背酸役。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驾胆,地道東北人涣澡。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像丧诺,于是被迫代替她去往敵國和親入桂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容