天天看點

centos7 安裝git_Git倉庫遷移Gitlab

centos7 安裝git_Git倉庫遷移Gitlab

背景

  • 伺服器申請下來了
  • 項目越來越多,目前的倉庫管理功能有點弱,完全靠人來管理,包括建立倉庫、管理ssh key等
  • 使用Gitlab可以更友善的檢視倉庫相關資訊、人員相關資訊。比如每個人的代碼送出量、日志
一句話總結:随着倉庫數量的增長,勢必要引入工具來進行管理。

Gitlab搭建

安裝docker

  1. 安裝依賴
yum install -y yum-utils 
           device-mapper-persistent-data 
           lvm2
           
  1. 添加國内源
yum-config-manager 
    --add-repo 
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
           
  1. 使用腳本自動安裝docker-ce
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
           
  1. 啟動docker
systemctl enable docker
systemctl start docker
           

安裝Gitlab

  1. 下載下傳鏡像
docker pull gitlab/gitlab-ce
           
  1. 啟動Gitlab
docker run --detach 
  --publish 443:443 --publish 80:80 --publish 2222:22   # 本地端口的映射
  --name gitlab  # gitlab-ce 的鏡像運作成為一個容器,這裡是對容器的命名
  --restart always  # 設定重新開機方式,always 代表一直開啟,伺服器開機後也會自動開啟的
  --volume /srv/gitlab/config:/etc/gitlab  # 将 gitlab 的配置檔案目錄映射到 /srv/gitlab/config 目錄中
  --volume /srv/gitlab/logs:/var/log/gitlab  # 将 gitlab 的log檔案目錄映射到 /srv/gitlab/logs 目錄中
  --volume /srv/gitlab/data:/var/opt/gitlab  # 将 gitlab 的資料檔案目錄映射到 /srv/gitlab/data 目錄中
  gitlab/gitlab-ce:lates # 需要運作的鏡像
           

這樣Gitlab就啟動了。

這裡其實有個坑,在centos7下,22端口被占用了,是以第三個端口映射不能使用

22

端口,使用其他就可以了。

第三個端口是 ssh 的映射端口,剛開始使用的

22

,導緻不能通過ssh協定 clone 項目。

配置郵件伺服器

想要發郵件,就必須配置郵件伺服器。我配置的是QQ郵箱。

打開

/srv/gitlab/config/gitlab.rb

  1. 修改配置
### Email Settings
gitlab_rails['smtp_enable'] = true # 開啟 SMTP 功能
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465 # 端口不可以選擇587,測試過會發送郵件失敗
gitlab_rails['smtp_user_name'] = "********@qq.com" # * 你的郵箱賬号,也可以是ge**[email protected]等
gitlab_rails['smtp_password'] = "****" # * 授權碼,不是密碼
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '********@qq.com' # * 發件人資訊,必須跟‘smtp_user_name’保持一緻,否則報錯
gitlab_rails['smtp_domain'] = "qq.com" # 修改并不影響 可修改為exmail.qq.com/james.com 經測試完全不影響,删除也不影響,并且發送的郵件都是一樣的。
           
  1. 重新加載配置
docker exec gitlab gitlab-ctl reconfigure
           
  1. 重新開機Gitlab
docker container gitlab restart
           

配置Git倉庫通路路徑

這一步我們要把位址配置成伺服器IP。

打開

/srv/gitlab/config/gitlab.rb

  1. 修改配置
external_url 'http://xxx.xxx.xxx.xx'
           
  1. 重新加載配置
docker exec gitlab gitlab-ctl reconfigure
           
  1. 重新開機Gitlab
docker container gitlab restart
           

遷移倉庫

登入Gitlab

第一次登入會要求你輸入密碼,使用者名為root(超級管理者)

建立空倉庫

我們建立一個空倉庫,用來作為遷移倉庫。

centos7 安裝git_Git倉庫遷移Gitlab

拉取裸倉庫到本地

git clone --bare [email protected]:/home/git/test.git
           

以鏡像方式push代碼到Gitlab

cd test.git
git push --mirror ssh://[email protected]:2222/root/test.git
           

至此,我們就完成了git倉庫遷移到Gitlab的工作了。

後續

Gitlab提供CI/CD功能,就順便看了一下,需要搭建Gitlab-Runner,執行pipline。因為目前在用jenkins,留給以後再探索。

使用Gitlab的目的主要有兩個原因:

  • 項目越來越多,使用工具可以友善管理
  • Gitlab提供了統計資料的功能,比如使用者的送出地圖

參考資料

  • 使用Docker搭建Gitlab
  • git倉庫完整遷移
  • 通過Docker搭建自用的Gitlab服務
  • Docker Gitlab SSH 坑
  • Git配置ssh key後,還是需要輸入密碼,git clone http 可以
  • gitlab搭建與配置說明

繼續閱讀