您好,登錄后才能下訂單哦!
Gitlab算是目前最流行的一款開源代碼管理工具了,由眾多組件構成,包括gitaly、postgresql、redis、unicorn、nginx等,可見其復雜性(可從gitlab官網了解相關信息)。也因此服務器的硬件配置不能太低,當前我們生產用的云主機是1臺c5.2xlarge(8vcpu、16G)的實例(官方軟硬件要求:https://docs.gitlab.com/ce/install/requirements.html),使用起來勉強可以。
Gitlab在CentOs7.x上安裝也僅是一個rpm包,所以安裝非常簡單。而原來在CentOs6.x上安裝Gitlab-ce-8.x時對Git的client版本還有要求(perl-Git、git版本在1.7.9.6及以上)。
我這里選用目前最新版本12.5.2的rpm包來演示,在這里吐槽一下,gitlab版本更新實在太頻繁了,我完全跟不上步伐。
使用清華的下載源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.5.2-ce.0.el7.x86_64.rpm
如果想知道在使用的gitlab版本相關特性以及bug修復,可關注gitlab的blog:https://about.gitlab.com/blog/categories/releases/
一、環境說明:
為了搭建gitlab,并實現郵件通知功能,我在gitlab服務器上同時配置了postfix+dovecot
域名:demo.com
用于測試的郵箱有:noreply@demo.com;admin@demo.com;firefly@demo.com
IP: 192.168.59.250
hosts文件內容如下:
[root@mail home]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.59.250 mail.demo.com mail demo.com
192.168.59.250 pop
192.168.59.250 gitlab.demo.com
192.168.59.250 jenkins.demo.com
主機名配置如下:
[root@mail home]# cat /etc/hostname
mail.demo.com
二、安裝配置
1、開始安裝
[root@mail ~]# rpm -ivh gitlab-ce-12.5.2-ce.0.el7.x86_64.rpm
使用rpm包安裝完成后,會提示Gitlab尚未配置,可通過修改/etc/gitlab/gitlab.rb文件來設置external_url,然后執行命令gitlab-ctl reconfigure來啟動Gitlab實例。
2、修改配置文件/etc/gitlab/gitlab.rb
[root@mail home]# cat /etc/gitlab/gitlab.rb |grep -v "^#" |grep -v "^$"
#配置一個用于外部訪問url
external_url 'http://gitlab.demo.com'
#開啟郵件通知功能
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'noreply@demo.com'
gitlab_rails['gitlab_email_display_name'] = 'noreply'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@demo.com'
#git倉庫備份路徑
gitlab_rails['backup_path'] = "/data/git-data/backups"
#備份保留周期,默認是7天,過期將被刪除
gitlab_rails['backup_keep_time'] = 604800
#git倉庫數據默認存放路徑
git_data_dirs({
? "default" => {
? "path" => "/data/git-data"
? }
})
#smtp郵箱設置,用于發送郵件給到各個git賬戶
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.demo.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "noreply@demo.com"
gitlab_rails['smtp_password'] = "noreply"
gitlab_rails['smtp_domain'] = "demo.com"
gitlab_rails['smtp_authentication'] = "login"
----------------------配置結束分割線----------------------
3、啟動服務。完成上述配置后即可執行命令gitlab-ctl reconfigure即可完成初始化配置并啟動相關服務
[root@mail ~]# gitlab-ctl reconfigure
[root@mail ~]# gitlab-ctl status
run: alertmanager: (pid 20578) 2681s; run: log: (pid 20577) 2681s
run: gitaly: (pid 20545) 2681s; run: log: (pid 20544) 2681s
run: gitlab-exporter: (pid 20569) 2681s; run: log: (pid 20568) 2681s
run: gitlab-workhorse: (pid 20551) 2681s; run: log: (pid 20550) 2681s
run: grafana: (pid 20576) 2681s; run: log: (pid 20575) 2681s
run: logrotate: (pid 20560) 2681s; run: log: (pid 20559) 2681s
run: nginx: (pid 20557) 2681s; run: log: (pid 20556) 2681s
run: node-exporter: (pid 20566) 2681s; run: log: (pid 20565) 2681s
run: postgres-exporter: (pid 20580) 2681s; run: log: (pid 20579) 2681s
run: postgresql: (pid 20549) 2681s; run: log: (pid 20543) 2681s
run: prometheus: (pid 20582) 2681s; run: log: (pid 20581) 2681s
run: redis: (pid 20584) 2681s; run: log: (pid 20583) 2681s
run: redis-exporter: (pid 20570) 2681s; run: log: (pid 20567) 2681s
run: sidekiq: (pid 20553) 2682s; run: log: (pid 20552) 2682s
run: unicorn: (pid 20562) 2682s; run: log: (pid 20561) 2682s
可以看到gitlab啟動了如此多的服務。
4、通過本地瀏覽器訪問,首先修改本地hosts(C:\Windows\System32\drivers\etc\HOSTS)文件增加如下記錄:
127.0.0.1 localhost
192.168.59.250 mail.demo.com
192.168.59.250 gitlab.demo.com
192.168.59.250 jenkins.demo.com
完成了本地hosts設置,這時我們就可以通過在瀏覽器輸入:http://gitlab.demo.com來訪問了,首次登錄需要更改密碼,并且密碼長度不能少于8位,如圖1所示。
圖1
登錄成功后,我們進到gitlab的首頁,如圖2所示。
圖2
三、常用設置
1、默認,gitlab是允許任意郵箱注冊,并且不需要郵件確認就能完成注冊并登錄,為了規范,我們需要做一定限制,比如只允許公司郵箱以及個人手機郵件注冊,如圖3所示。
圖3
完成上述設置后,我們一嘗試注冊一個名為firefly的賬戶,如圖4所示。
圖4
注冊成功后,將會由noreply@demo.com給firefly@demo.com發送一封確認郵件,如圖5和圖6所示。
圖5
圖6
點擊“Confirm your account"跳到登錄頁,輸入開始注冊的用戶名以及密碼完成登錄,如圖7和圖8所示。
圖7
圖8
本想在一篇文章寫更多的內容,奈何圖太多,時間也有限,只能放到下一篇。
總結與思考,Gitlab作為公司的代碼管理服務器,安全設置是很有必要的。如上述修改倉庫默認存放路徑,各倉庫權限管理與分配、倉庫的定期備份、訪問日志歸檔(便于后期審計)、服務器的默認SSH端口修改等等將在下一篇分享。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。