官網(wǎng)地址:https://about.gitlab.com/downloads
清華鏡像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
安裝ruby
? ? ?下載ruby2.1.9
? ? ? ? ? ? ?wget https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.9.tar.gz
? ? ? ?安裝ruby軟件
? ? ? ? ? ? ?tar zxvf ruby-2.1.9.tar.gz
? ? ? ? ? ? ?cd ruby-2.1.9
? ? ? ? ? ? ?./configure
? ? ? ? ? ? make && make install
? ? ? ?查看版本
? ? ? ? ? ? ? ruby -v
安裝gitlib步驟
? ? ? 下載 gitlab地址
? ? ? ? ? ? ?curl -O https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.4.1-ce.0.el7.x86_64.rpm
? ? ? 先安裝依賴包
? ? ? ? yum install curl policycoreutils openssh-server openssh-clients
? ? ? ? systemctl enable sshd
? ? ? ? systemctl start sshd
? ? ? ? yum install postfix
? ? ? ? systemctl enable postfix
? ? ? ? systemctl start postfix
? ? ? ? firewall-cmd --permanent --add-service=http
? ? ? ? systemctl reload firewalld
? ? ? 再安裝程序包
? ? ? ? ? rpm -ivh gitlab-ce-9.4.1-ce.0.el7.x86_64.rpm
? ? ?修改配置文件
? ? ? ? ?vim? /etc/gitlab/gitlab.rb
? ? ? ? ?external_url 'http://172.16.88.22' #配置自己主機(jī)IP
? ? ? ? ?gitlab-ctl reconfigure? #重載gitlab配置文件
? ? ? ? gitlab-ctl status
? ? ?訪問地址
? ? ? ?http://172.16.88.22? ?用戶名:root 密碼:gaogao123
? ? ?常用命令
? ? ? ? gitlab-ctl start/restart/stop/status
? ? ? ?gitlab-ctl tail nginx
Gitlab組件
? ? ? ? ?nginx:靜態(tài)Web服務(wù)器
? ? ? ? ?gitlab-shell:用于處理Git命令和修改authorized keys列表
? ? ? ? ?gitlab-workhorse:輕量級的反向代理服務(wù)器
? ? ? ? ?logrotate:日志文件管理工具
? ? ? ? ?postgresql:數(shù)據(jù)庫
? ? ? ? ?redis:緩存數(shù)據(jù)庫
? ? ? ? ?sidekiq:用于在后臺執(zhí)行隊列任務(wù)(異步執(zhí)行)
? ? ? ? ? unicorn:GitLab Rails應(yīng)用是托管在這個服務(wù)器上面的。
常用命令
? ? ? ? /var/opt/gitlab/git-data/repositories/root:庫默認(rèn)存儲目錄
? ? ? ?/opt/gitlab: 應(yīng)用代碼和相應(yīng)的依賴程序
? ? ? /var/opt/gitlab:gitlab-ctl reconfigure命令編譯后的應(yīng)用數(shù)據(jù)和配置文件袱瓮,不需要人為修改配置
? ? ?/etc/gitlab: 配置文件目錄
? ? /var/log/gitlab:此目錄下存放了gitlab各個組件產(chǎn)生的日志
? ? /var/opt/gitlab/backups/:備份文件生成的目錄
測試地址:http://172.16.88.22/admin
創(chuàng)建對象
? ? ? ?創(chuàng)建gourps? ->組名:java
? ? ? ?創(chuàng)建用戶并設(shè)置密碼? ->超級管理員:Administrator? 項目經(jīng)理:pm<權(quán)限為master> 開發(fā)者:dev1/dev2 <權(quán)限為Developer> a12345678
? ? ? ?創(chuàng)建項目? ->項目名:devops
? ? ? ?授權(quán)項目用戶 ->賦予開發(fā)者權(quán)限
SSH KEY管理
? ? ? ?個人SSH KEY->Deploy KEY 只能下載代碼,不能上傳代碼
? ? ? ?創(chuàng)建SSH KEY ->ssh-keygen 一路回車即可
? ? ? ? ? ? ? ?linux /root/.ssh/id_rsa.pub
? ? ? ?先安裝Git-x.x.x-32-bit_setup.1457942412.exe? -> Windows C:\Users\Administrator\id_rsa.pub
? ? ? ?將公鑰導(dǎo)入用戶SSHKEY
? ? ? ?右上角一個圓圈(Settings)——>SSH Keys->Add an SSH key -> add key即可
? ? ? 開發(fā)者計劃(項目經(jīng)理pm)
? ? ? ? ? ? ?devops? 需求 開發(fā)者? 完成日期
? ? ? ? ? ? ? v1.0? ? 首頁? dev1? 2019年11月25日
? ? ? ? ? ? ? v1.0? ? 鐵路? dev1? 2019年11月25日
? ? ? ? ? ? ? v1.0? ? 地圖? dev2? 2019年11月25日
? ? ? ? ? ? ? v1.0? ? 關(guān)于? dev2? 2019年11月25日
Issue管理 (項目經(jīng)理pm)
? ? ? ? 第一步:創(chuàng)建milestone里程碑->New Milestone->java/devops-title(官網(wǎng)V1.0)
? ? ? ? 第二步:創(chuàng)建issue->Assignee[dev1/dev2]->引用milestone里程碑
? 創(chuàng)建分支
? ? ? ? git checkout -b shouye
? ? ? ? echo "<h1>This is the First Page!</h1>" > index.html
? ? ? ? git add .
? ? ? ? git commit -m 'index'
? ? ? ?git push origin index
? ? 登錄dev1->projects->Repository->Branches->Merge Requset->Assignee(pm)[Milestone(官網(wǎng)V1.0)]->submit merge request
?合并分支
? ? Todos ->dev1->Merge Requests->shouye->Accept Merge Request[合并到主干]
Todos:登錄開發(fā)者賬號,查看開發(fā)任務(wù)
整個流程:分支->線上->Pm(合并主干)->下載/更新
備份管理
? ? ? 配置文件中加入
? ? ? ? ? ? ?gitlab_rails['backup_path'] = '/data/backup/gitlab'
? ? ? ? ? ? ?gitlab_rails['backup_keep_time'] = 604800
? ? ? 如果自定義備份目錄需要賦予git權(quán)限
? ? ? ? ? ? ?mkdir /data/backup/gitlab
? ? ? ? ? ? ? chown -R git.git /data/backup/gitlab
? ? ? ?定時任務(wù)Crontab中加入
? ? ? ? ? ? ?0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
? ? ? ?手工備份
? ? ? ? ? ? ?/usr/bin/gitlab-rake gitlab:backup:create
策略建議:本地保留三到七天,在異地備份永久保存
恢復(fù)數(shù)據(jù)
? ? ? ?第一步:先停止數(shù)據(jù)寫入服務(wù)晒衩,保證數(shù)據(jù)一致性
? ? ? ? ? ? ? ?gitlab-ctl stop unicorn
? ? ? ? ? ? ? ?gitlab-ctl stop sidekiq
? ? ? ?第二步:再恢復(fù)數(shù)據(jù)
? ? ? ? ? ? ? ?gitlab-rake gitlab:backup:restore BACKUP=1492296095
? ? ? ? ? ? ? ?date -d @1492296095
郵件配置
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = ''
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = ""
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = ""
gitlab_rails['smtp_password'] = ""
gitlab_rails['smtp_domain'] = ""
gitlab_rails['smtp_authentication'] = "login"