DevOps元素周期表——1號元素 Gitlab

  • 2020 年 10 月 8 日
  • 筆記

img

DevOps元素周期表——1號元素 Gitlab

GitLab 是由 GitLab Inc.開發,一款基於 Git 的完全集成的軟體開發平台(fully integrated software development platform)。另外,GitLab 且具有wiki以及在線編輯、issue跟蹤功能、CI/CD 等功能。

一. 簡介

官網: //about.gitlab.com/

GitLab是一個利用 Ruby on Rails 開發的開源應用程式,實現一個自託管的Git項目倉庫,可通過Web介面進行訪問公開的或者私人項目。

img

它擁有與Github類似的功能,能夠瀏覽源程式碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。它還提供一個程式碼片段收集功能可以輕鬆實現程式碼復用,便於日後有需要的時候進行查找。

GitLab 5.0以前版本要求伺服器端採用 Gitolite 搭建,5.0版本以後不再使用 Gitolite ,採用自己開發的 gitlab-shell 來實現。如果你覺得安裝麻煩可以使用 GitLab Installers 一鍵安裝程式。

img

二. 安裝配置

  • 系統

    Centos7

  • 準備工作

    • 關閉firewalld防火牆

      • systemctl stop firewalld
      • systemctl disable firewalld
    • 關閉SELINUX並重啟系統

      • vi /etc/sysconfig/selinux

        SELINUX=disabled

      • reboot

  • 開始安裝

    安裝Omnibus Gitlab-ce package

    # yum -y install curl policycoreutils openssh-server openssh-clients postfix
    

    配置YUM倉庫

    # curl -sS //packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    

    啟動postfix郵件服務

    # systemctl start postfix && systemctl enable postfix
    

    安裝Gitlab-ce社區版本

    # yum install -y gitlab-ce
    

    證書創建與配置載入

    Nginx SSL代理服務配置

    初始化Gitlab相關服務並完成安裝

    # mkdir -p /etc/gitlab/ssl
    
    # openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048
    # openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"
    
# openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"
# chmod 600 *
# vi /etc/gitlab/gitlab.rb

將eternal_url '//gitlab.example.com' 改為https

nginx['redirect_http_to_https'] = false 刪除注釋,改為true

nginx['ssl_certificate'] = "etc/gitlab/ssl/#{node...}.crt" 改為 "/etc/gitlab/ssl/gitlab.example.com.cre"

nginx['ssl_certificate_key'] = "etc/gitlab/ssl/#{node...}.key" 改為 "/etc/gitlab/ssl/gitlab.example.com.key"

nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"
# gitlab-ctl reconfigure
# vi /var/opt/gitlab/nginx/conf/gitlab-http.conf

server_name下面添加rewrite ^(.*)$ //$host$1 permanent

# gitlab-ctl restart

修改本地hosts文件

vmware-ip(虛擬機ip地址)	gitlab.example.com

瀏覽器訪問,登錄修改admin帳號密碼

當然還可以通過docker來安裝,不過對於gitlab這種服務,並不推薦使用docker,因為其服務依賴系統資源強,而且你的倉庫也不希望一個簡單的docker rm命令就可以被連帶銷毀掉。