1. 程式人生 > >GitLab在CentOS7下LNMP環境的安裝使用

GitLab在CentOS7下LNMP環境的安裝使用

在團隊開發中以前大家都用svn作為版本控制器,現在大家都轉用git了,gitlab就是web版的git版本控制器,今天就講講gitlab的安裝。

1、GitLab安裝簡介:

安裝方法詳見:GitLab安裝說明,安裝時,首先讓你選擇伺服器版本,我這裡就選擇centos7了,按照官方的安裝說明進行安裝,

2、開始安裝GitLab:

官方安裝時第一步的說明是這樣的:

sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo
yum install postfix sudo systemctl enable postfix sudo systemctl start postfix sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload

不過在實際應用中我修改了第一步,安裝內容如下:

sudo yum -y install postfix cronie

安裝兩個包,其中一個是postfix,為接下來GitLabpostfix發郵件通知做準備,還有一個就是cronie,其實就是計劃任務,安裝完成之後開啟postfix

服務:

sudo service postfix start

如果提示如下錯誤:

Job for postfix.service failed. See 'systemctl status postfix.service' and 'journalctl -xn' for details.

請進入/etc/hosts中去掉IPV6的設定:

#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

然後啟動postfix服務,並且設定postfix服務開機啟動:

sudo chkconfig postfix on

接下來進行第二步,第二步安裝的時候有兩種方法:
第一種是使用新增yum源,然後用yum源安裝 [推薦這種方法安裝],
第二種是直接用rpm包安裝,安裝方法如下:

①、yum源方法:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum -y install gitlab-ce

②、rpm包方法:

在使用rpm包時要選擇自己需要的gitlab的版本,然後在下面的命令中,用版本號替換XXX。

curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-XXX.rpm/download
rpm -i gitlab-ce-XXX.rpm

安裝完成, 接下來按照原始配置啟動GitLab:

3、 用預設配置配置GitLab並啟動:

sudo gitlab-ctl reconfigure

4、按個人需求修改GitLab配置:

因為這裡要用已有的Nginx作為GitLab的伺服器,所以要先進行配置,GitLab的配置檔案位置:

/etc/gitlab/gitlab.rb

我這裡因為直接使用https作為連線方式,並且提前配置了gitlab的域名是https://git.xxx.com,接下來修改/etc/gitlab/gitlab.rb以下內容,在修改內容裡要注意一點就是web_server設定的值是你nginx的配置

# note the 'https' below
external_url 'https://git.xxx.com'

# Set the web server
web_server['external_users'] = ['www']

# Disable the built-in nginx
nginx['enable'] = false

上面是gitlab配置檔案需要修改的地方,接下來新增nginx虛擬主機

5、新增nginx虛擬主機,支援gitlab:

新增gitlab.conf

vi /usr/local/nginx/conf/vhost/gitlab.conf

gitlab.conf中新增以下模板內容:

## GitLab
##
## Modified from nginx http version
## Modified from http://blog.phusion.nl/2012/04/21/tutorial-setting-up-gitlab-on-debian-6/
## Modified from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
##
## Lines starting with two hashes (##) are comments with information.
## Lines starting with one hash (#) are configuration parameters that can be uncommented.
##
##################################
##        CONTRIBUTING          ##
##################################
##
## If you change this file in a Merge Request, please also create
## a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests
##
###################################
##         configuration         ##
###################################
##
## See installation.md#using-https for additional HTTPS configuration details.

upstream gitlab-workhorse {
  server unix:/var/opt/gitlab/gitlab-workhorse/socket fail_timeout=0;
}

## HTTPS host
server {
  listen  80;
  listen 443 ssl spdy;
  server_name git.xx.com; ## Replace this with something like gitlab.example.com
  server_tokens off; ## Don't show the nginx version number, a security best practice
  root /opt/gitlab/embedded/service/gitlab-rails/public;
  include rewrite.conf;
  include ssl.conf;
  include pagespeed.conf;
  ## Individual nginx logs for this GitLab vhost
  access_log  /var/log/nginx/gitlab.access.log;
  error_log   /var/log/nginx/gitlab.error.log;
  location / {
    client_max_body_size 0;
    gzip off;

    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_http_version 1.1;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-Ssl     on;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_pass http://gitlab-workhorse;
  }
}

在模板內容中需要修改以下幾個地方:

server_name

在上面配置檔案中引用了三個額外的配置檔案:
https強制跳轉配置檔案:

rewrite.conf;

https訪問配置檔案:

ssl.conf;

pagespeed加速配置檔案:

pagespeed.conf;

這三個配置檔案是按照部落格中LNMP環境搭建及配置https訪問LNMP環境中生成的配置檔案,如果沒有這三個配置檔案請去部落格中找到這三個配置檔案,ssl.conf可能有點特殊,因為在之前的記錄中也沒有詳細寫出配置檔案的內容我這裡把它的內容寫出來:

ssl on;
add_header Strict-Transport-Security "max-age=31536000;includeSubdomains; preload;";
ssl_certificate /usr/local/nginx/conf/1_xxx.com_bundle.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;
ssl_session_cache    shared:SSL:20m;
ssl_session_timeout  20m;

我這裡用到的crt和key檔案是從ssl站點生成完成之後下載下來的,修改完之後儲存gitlab.conf,接下來使配置生效:

6、使GitLab配置和Nginx配置生效:

使GitLab配置生效:

sudo gitlab-ctl reconfigure

重啟Nginx:

/usr/local/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -s reopen

7、設定郵件系統,使用postfix傳送郵件通知:

在第一步我們安裝並啟動了postfix,現在測試一下用postfix傳送一封郵件給自己:

echo "Test mail from postfix" | mail -s "Test Postfix" 你的郵件地址

如果沒有錯誤提示,表示傳送成功,接下來登入你的郵箱,檢視收到的郵件,郵件的主題是Test Postfix,內容是Test mail from postfix,當郵箱收到系統傳送來的郵件時,將系統的地址複製下來,如:[email protected],開啟/etc/gitlab/gitlab.rb,修改以下內容:

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['gitlab_email_display_name'] = 'git.xxx.com'

儲存之後重新配置GitLab

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

重啟nginx

nginx -s reload
nginx -s reopen

配置完成之後,就有了郵件通知,如果為了更好的使用郵件通知系統,也可以使用smtp方式傳送郵件,使用方法如下,繼續修改配置檔案/etc/gitlab/gitlab.rb

# Use smtp instead of sendmail/postfix.
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "需要的QQ郵箱"
gitlab_rails['smtp_password'] = "密碼"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

smtp配置檔案中根據實際情況修改對應的smtp服務資訊,詳細配置可看官方說明:GitLab配置SMTP

8、GitLab在阿里雲ECS上的優化

使用GibLab一段時間後發現伺服器越來越卡,尤其是阿里雲的ECS,由於開啟swap分割槽會導致硬碟IO效能下降,因此阿里雲伺服器初始狀態未配置swap,這樣就導致GitLab偶爾還會出現500/502錯誤,原因就是記憶體不足,可以使用如下方法修改阿里雲的swap空間:

①、需要新增2G的SWAP分割槽/var/swap,則獲取2G的檔案塊:

dd if=/dev/zero of=/var/swap bs=1024 count=2097152

②、建立swap檔案:

/sbin/mkswap /var/swap

③、啟用swap檔案:

/sbin/swapon /var/swap

④、檢視一下swap是否正確:

/sbin/swapon -s

⑤、加到fstab檔案中讓系統引導啟動:

echo "/var/swap swap swap defaults 0 0" >>/etc/fstab

PS.阿里雲預設在啟動項裡關閉了SWAP分割槽,在/etc/rc.d/rc.local檔案裡有一行 swapoff -a,表示禁用swap,想要使用SWAP分割槽把這行刪掉就好了,如果沒有就不用管。

安裝完成之後訪問git.xx.com,要求輸入使用者名稱密碼,安裝完成後GitLab預設的管理員使用者是:

root

預設密碼是:

5iveL!fe

更新GitLab:

sudo yum -y update gitlab-ce

9、GitLab設定是否開機啟動

禁止GitLab開機自啟動:

sudo systemctl disable gitlab-runsvdir.service

啟用Gitlab開機自啟動:

sudo systemctl enable gitlab-runsvdir.service

本文講解到此為止,GitLab的基本配置已經完成,在使用過程中遇到的問題,GitLab一般都會有說明,更深層次的問題可以去官網索取答案。

相關推薦

GitLab在CentOS7LNMP環境安裝使用

在團隊開發中以前大家都用svn作為版本控制器,現在大家都轉用git了,gitlab就是web版的git版本控制器,今天就講講gitlab的安裝。 1、GitLab安裝簡介: 安裝方法詳見:GitLab安裝說明,安裝時,首先讓你選擇伺服器版本,我這裡就選擇

Ubuntu 16.04 搭建 LNMP環境安裝php7.1的小坑

然後我參考他安裝php 安裝成功後,再去訪問127.0.0.1的時候,呈現的介面居然是apache的,從頭開始我就沒有安裝apache, 後來仔細看來下:sudo apt-get instal

串並行數據結構實驗--MACSML環境安裝1

解決 ddr 目錄下的文件 not found 如果 res comm 最新 ins 串並行數據結構實驗需要我們實現配置好SML的實驗環境。 本文就展示在MAC上簡單的命令行的SML環境的配置。 1.首先訪問http://www.smlnj.org/ Download中找到

lnmp環境安裝配置tomcat + jdk

lnmt安裝jdk的版本 1.8● 各種版本可在官網http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 頁面下載● tar -zxvf jdk-8u171-linux-x64.tar.gz /

基於LNMP環境安裝配置phpMyAdmin4.8

LNMP PHP7 phpmyadmin nginx MySQL phpMyAdmin是一個以PHP為基礎、以Web-Base方式架構在網站主機上的、可以通過web方式管理和操作MySQL數據庫的管理工具。本文主要內容為基於LNMP環境安裝phpMyAdmin4.8。一、安裝環境1、主機I

LinuxR環境安裝 ----上海快_三源碼出售源碼編譯安裝和yum在線安裝

控制臺 r環境 在線 pat glibc bbs 輸入 wget -c R環境的兩種安裝方式,上海快_三源碼出售 Q1446595067 編譯安裝和yum在線安裝 第一種:源碼編譯安裝 1.首先,從官網上下載3.5.0版本 2.下載完後記得解壓,我的習慣是解壓在/usr/

Java全棧程序員之02:UbuntuJava環境安裝、配置、測試

配置文件 軟件 三方 shel class 系統配置文件 一件事 devel java10 在上文講完之後,我們手裏的ubuntu只能算是一個上網機,什麽也幹不了,本篇我們將折騰它為開發機。 這裏,我們這裏假定你對linux體系是初級選手,所以本篇會講的啰嗦一點,高手就出

windowrabbitmq環境安裝

bsp 內部 stop 一個 是把 strong 帳號 onf user 最近項目想用個MQ來做業務分離,看了市面上眾多產品,最後選了rabbitmq,理由很簡單,對window的支持很到位(其實是公司的系列產品都是.net的)。 安裝方法什麽的就不說了,直接到官網下載雙擊

Centos7 lamp環境安裝

apache  使用yum 安裝   mysql(5.6)和php(7)使用原始碼編譯安裝 一 、首先安裝各種需要的編譯器和依賴包 yum -y install gcc gcc-c++ autoconf automake libtool make cmake zlib

CentOS LNMP 環境配置

lock rom stc share ebo centos avi roo yum 源 安裝配置 Nginx 安裝配置 MySQL 安裝配置 PHP Nginx 與 PHP-FPM 集成 環境配置驗證 LNMP 環境代表 Linu

Lnmp環境安裝禪道專案管理軟體

1、本地環境 CentOS Linux release 7.5.1804 (Core) PHP 7.1.0-dev (cli) mysql Ver 14.14 Distrib 5.7.22 nginx version: nginx/1.11.1 2、下載禪道開源版安裝包並安裝 神道官網地址:ht

LNMP環境安裝(編譯安裝

第一步 新增一個新使用者和使用者組 groupadd www  建立www使用者組 useradd www -g www 給www使用者組裡新增www使用者 第二步 下載ngnix安裝包 下載1.10.1nginx安裝包 把所有安裝包都放到 /home/pa

WindowsScala環境安裝

1.下載Scala-2.12.6.zip或者Scala-2.12.6.msi 2.解壓或者直接執行msi 3.解壓應該得自己配置環境變數 4.Scala。msi應該不用自己配環境變數 5.官網要求Scala必須安裝Java jdk(Scala構建於jvm) 本身

win7 php環境安裝

Win7下面配置PHP+Apache+Mysql圖文教程 【準備工作】 1、Apache版本:httpd-2.2.21-win32-x86-openssl-0.9.8r openssl表示帶有openssl模組,利用openssl可給Apache配置SSL安全連結。

windowspython環境安裝

雖然是windows下安裝的方式,但是linux也差不多哈; 1,首先安裝python 這個是菜鳥教程的安裝介紹頁面,其實很清晰了:http://www.runoob.com/python/python-install.html,當然你可以選擇跟著我的步驟走哈 (1)從此地址下載python:https

ubunt16.04caffe環境安裝

一. 系統初始環境 系統:Ubuntu16.04: ubuntu-16.04-desktop-amd64.iso cuda安裝檔案: cuda-repo-ubuntu1604-8-0-loca

linuxLNMP環境搭建

LNMP是linux、nginx、mysql、php的簡寫;LNMP與LAMP環境一樣也是用來做web網站後臺的,nginx是輕量級的,程序間的通訊使用php-fpm獨立使用;apache則是比較臃腫的,呼叫php的模組來完成的,需要載入很多模組,執行起來相對較慢。一、安裝M

Win10UEFI環境安裝Ubuntu 16.04雙系統教程

前言 學習使用Linux難免會安裝Ubuntu系統,而Ubuntu 16.04則是目前比較穩定的版本深受好評。 Win7下安裝雙系統,如果沒有對空間什麼特殊要求,直接在Ubuntu系統安裝的時候選擇與Win7系統共存的選項,一路“下一步”即可。 而

Java全棧程式設計師之02:UbuntuJava環境安裝、配置、測試

在上文講完之後,我們手裡的ubuntu只能算是一個上網機,什麼也幹不了,本篇我們將折騰它為開發機。 這裡,我們這裡假定你對linux體系是初級選手,所以本篇會講的囉嗦一點,高手就出門左轉吧。 1.安裝 首先我們確定下我們安裝的Ubuntu系統是否已經安裝了java環境。 進入終端,敲入命令su,進

Ubuntu16.04Java環境安裝與配置

1、下載jdk。 2、驗證java是否安裝,使用java -version命令,如下圖所示說明沒有安裝: 3、在usr目錄中建立一個jdk-8目錄,如下圖所示: 4、配置系統環境變數,編輯/e