當前位置:首頁 » 雲伺服器 » 非root怎麼搭建gitlab伺服器

非root怎麼搭建gitlab伺服器

發布時間: 2023-01-06 21:26:04

㈠ docker快速部署gitlab代碼倉庫

GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。

GitLab由烏克蘭程序員DmitriyZaporozhets和ValerySizov開發,它使用 Ruby語言 寫成。後來,一部分用 Go語言 重寫。截止2018年5月,該公司約有290名團隊成員,以及2000多名開源貢獻者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O』ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等組織使用。

Git、Github、Gitlab的區別:

• Git

一種代碼版本管理系統,可以理解為標准或者統稱。

• Github

產品名稱,基於git開發的代碼管理系統,必須公開於互聯網上的公共倉庫,安全較低,私有項目需要另外付費。

• Gitlab

產品名稱,基於git開發的私有代碼管理系統,開源免費、可自行管理的私有倉庫,安全較高。

• 其它Git

msysGit、 Gitee(碼雲)、Gitea、 Gogs、 GitBucket類似於Github、Gitlab

下面我們介紹如何用docker快速部署一套功能強大的gitlab-ce社區版代碼倉庫。

第一步、centos 7.6安裝、配置IP、dns、網關等(略)

第二步、安裝docker安裝,參考作者前幾天的文章《centos 7下安裝docker》

https://www.toutiao.com/i6994343127452566054/

第三步、安裝docker-compose,參考作者前幾天的文章《使用docker-compose運行docker容器》

https://www.toutiao.com/i6994600889604440608/

第四步、下載gitlab-ce 13.12.10官方鏡像

docker pull gitlab/gitlab-ce:13.12.10-ce.0

第五步、建立相關目錄結構,配置目錄許可權

mkdir -p /data/gitlab/config

mkdir -p /data/gitlab/data

mkdir -p /data/gitlab/logs

第六步、建立docker-compose.yml

cd /data/gitlab && vi docker-compose.yml

docker-compose.yml具體配置和說明放本文章後面。

第七步、使用dc up -d起動容器

cd /data/gitlab && dc up -d

等待幾分鍾後服務初始化完成,使用宿主機IP在瀏覽器上進入gitlab,配置root管理員的密碼。一套功能強大的gitlab代碼倉庫搭建完成,關於gitlab的具使用,後面會推出相關視頻/文章說明。

附:docker-compose.yml

version: '3.6' #配置編排的版本

services:

gitlab:

image: gitlab/gitlab-ce:13.12.10-ce.0

TZ: 'Asia/Shanghai' #配置容器時區,不會有8小時差異

GITLAB_OMNIBUS_CONFIG: |

external_url 'http://172.18.95.158' #伺服器訪問地址,也可以是域名

gitlab_rails['time_zone'] = 'Asia/Shanghai' #配置gitlab服務的時區

gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" #管理員郵箱smtp地址

gitlab_rails['smtp_port'] = 465 #管理員郵箱伺服器埠

gitlab_rails['smtp_user_name'] = "[email protected]" #管理員郵箱地址

gitlab_rails['smtp_password'] = "ZSfS11AssBXX" #管理員郵箱密碼,配置後才可以給用戶發郵件等信息

gitlab_rails['smtp_domain'] = "xxxxxx.com" #管理員郵箱域名

gitlab_rails['smtp_authentication'] = "login" #管理員郵箱的驗證方式為login

gitlab_rails['smtp_enable_starttls_auto'] = true #使用安全加密方式登陸管理員郵箱

gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_from'] = '[email protected]' #管理員郵箱賬號

gitlab_rails['gitlab_shell_ssh_port'] = 22

ports: #放開gitlab 80埠,後面我們用80埠訪問gitlab

- '80:80'

volumes: #掛載配置、數據持久化、日誌目錄

- ./config:/etc/gitlab

- ./data:/var/opt/gitlab

- ./logs:/var/log/gitlab

㈡ 如何搭建git伺服器 windows

GitLab是由Ruby語言開發的基於linux的Git伺服器,是我見過的最強大的Git伺服器。發現它之後,立即決定將Git伺服器換成GitLab。但安裝好GitLab之後面臨一個問題,如何將伺服器上的git項目直接導入到GitLab,之前的Git伺服器是由是git+apache搭建的(詳見在Linux上用Apache搭建Git伺服器)。在網上發現了這篇文檔——,並按之進行了操作。1)設置存放代碼庫的主目錄vi/etc/gitlab/gitlab.rb比如這里設置為:git_data_dir"/gitlab/repos"2)訪問剛搭建的GitLab站點,創建一個group,比如cnblogs。這時會在/gitlab/repos下創建/gitlab/repos/repositories/cnblogs文件夾。然後在/gitlab/repos/repositories/創建一個文件夾,比如cnblogs3)將現有的所有git項目文件復制到這個文件夾cp-r/data/git/*/gitlab/repos/repositories/cnblogs4)修改一下復制過來的文件夾的所有者:chown-Rgit:git/gitlab/repos/repositories/cnblogs5)運行GitLab導入命令cd/var/opt/gitlabgitlab-rakegitlab:import:repos等了一段時間之後,顯示done,卻一個項目也沒導入進來。經研究發現,在導入時,GitLab只認文件夾名以.git結尾的項目。於是,將要導入的項目文件夾名稱加上.git後綴,再次進行導入。結果顯示導入成功,比如:Processingcnblogs/CNBlogsJob.git*CreatedCNBlogsJob(cnblogs/CNBlogsJob.git)Done!可以是GitLab站點上卻看不到已導入的項目。多次努力,也沒能解決這個問題。後來,實在沒法,改為手動導入,導入方法如下:1)在GitLab站點上創建與要導入的項目同名的項目。2)進入剛創建的項目文件夾cd/gitlab/repos/repositories/cnblogs/項目名稱.git3)刪除該文件下的所有文件rm-rf*4)將要導入的項目文件夾下的所有文件復制過來cp-r/data/git/CNBlogsJob/*/gitlab/repos/repositories/cnblogs/CNBlogsJob.git就這樣將項目一個一個地導入進來。5)導入完成後,修改一下導入的所有項目的文件所有者chown-Rgit:git/gitlab/repos/repositories/cnblogs如果不修改所有者,客戶端無法進行gitpush。就這樣手動地完成了現有Git項目的導入。備註:操作系統是CentOS6.2,GitLab版本是7.8.4。

㈢ 如何在 CentOS 上安裝 Gitlab

首先安裝 EPEL 和編譯依賴庫

$ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
如果你是非 64 位,去上面的網址找到適合你發行版的最新版本的 epel rpm
$ yum -y update
$ yum -y install gcc gcc-c++ make autoconf libyaml-devel gdbm-devel ncurses-devel openssl-devel zlib-devel readline-devel curl-devel expat-devel gettext-devel tk-devel libxml2-devel libffi-devel libxslt-devel libicu-devel sendmail patch libyaml* pcre-devel sqlite-devel vim
安裝 python 2.7+

Gitlab 要求 Python 2.5.5+ 以及 Ruby 1.9+

系統 Python 默認是 2.6.x,如果你想把 Python 升級到目前比較流行的 2.7.x 就參照下面步驟,否則直接跳過。(Gitlab 目前不支持 Python 3.0)

$ mkdir /tmp/gitlab && cd /tmp/gitlab
$ curl --progress http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz | tar xvf
$ cd Python-2.7.5
$ ./configure --prefix=/usr/local
$ make && make altinstall
安裝好之後,需要做兩件事情,替換默認 python 的版本至最新版本,

$ sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python
因為系統默認 PATH 的定址路徑是 /usr/local/bin
最後看下 Python 版本是否是剛剛安裝的版本:

$ python --version
由於 yum 是 python 的一個 mole,所以這塊修改可能會引起無法調用 yum 腳本,所以需要修改這個文件 /usr/bin/yum 的第一行為 !#/usr/bin/python2.6
安裝 Ruby 2.0

Ruby 1.9 和 2.0 的特性差別不大,索性升級至最新 2.0 版本即可

$ cd /tmp/gitlab
$ curl --progress http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz
$ cd ruby-2.0.0-p247
$ ./configure
$ make
$ make install
ruby 2.0 已經內置 gem (v2.0.3),只需要安裝 bundler

$ gem install bundler
若在執行 sudo ruby 或 sudo gem 找不到命令,因為編譯的路徑配置到了 /usr/local/bin,我們只需要做下軟鏈接到 root 用戶可以找到的 $PATH 路徑:
$ ln -s /usr/local/bin/ruby /usr/bin/ruby
$ ln -s /usr/local/bin/gem /usr/bin/gem
$ ln -s /usr/local/bin/bundle /usr/bin/bundle
安裝 Git 和 Gitolite

$ yum -y install git-all gitolite
安裝 Nginx

$ yum -y install nginx
$ service nginx start
nginx 需要從 EPEL 中安裝,默認系統沒有 nginx 包。
安裝 Mysql 和 Redis

Gitlab 要求強制安裝 redis 處理一些數據,另外支持 MySQL 和 PostgreSQL,這里主要以 MySQL 為例

$ yum -y install mysql mysql-devel mysql-server redis
配置 Mysql 和 gitlab 需要的用戶和資料庫

$ service mysqld start
$ mysql -u root
$ mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';
$ mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_proction` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
$ mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_proction`.* TO 'gitlab'@'localhost';
$ mysql> \q
Redis 使用默認配置即可,直接啟動

$ service redis start
添加 Gitlab 用戶

$ useradd -c 'GitLab' git
CentOS 的命令沒有辦法直接禁止用戶的訪問的參數,需要用下面命令:

$ passwd -l git
安裝 Gitlab-shell

使用 root 賬戶切換到 git 賬戶下操作,可以比官方教程省去一些麻煩的輸入

$ su git && cd /home/git
$ git clone https://github.com/gitlabhq/gitlab-shell.git
$ cd gitlab-shell
通過 git tag 查看最新版本並切換之

$ git checkout v1.7.1
編輯配置文件修改你要設定的域名(domain),比如 http://gitlab.dev/

$ vim config.yml
完成之後執行安裝腳本

$ ./bin/install
安裝 Gitlab

$ cd /home/git
$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab
$ cd /home/git/gitlab
通過 git tag 查看最新版本並切換之

$ git checkout 6.0.1
這里需要配置的東西多一些,這里參考官方的文檔,也可以安裝我下面的步驟來:

$ cd /home/git/gitlab
復制配置文件,修改 host 相關的配置項,主要是 domain 要和上面的 http://gitlab.dev

$ cp config.yml{.example,}
$ vim config/gitlab.yml
確認 gitlab 以下目錄的許可權是否正確

$ mkdir tmp/pids/
$ mkdir tmp/sockets/
$ chown -R git log/
$ chown -R git tmp/
$ chmod -R u+rwX log/
$ chmod -R u+rwX tmp/
$ chmod -R u+rwX tmp/pids/
$ chmod -R u+rwX tmp/sockets/
創建 satellites 目錄,這個目錄是保存各個用戶的倉庫

$ mkdir /home/git/gitlab-satellites
創建 uploads 目錄(為什麼 gitlab 不在項目中創建呢= =!)

$ mkdir public/uploads
$ chmod -R u+rwX public/uploads
復制 unicorn 配置文件

$ cp config/unicorn.rb{.example,}
設置 ruby web 容器的參數,比如 2GB RAM 伺服器可以設置 3 個 worker。

如果系統其他服務佔用了 unicorn 的埠,記得改名。
$ vim config/unicorn.rb
設置一些 git 全局參數

$ git config --global user.name "GitLab"
$ git config --global user.email "gitlab@localhost"
$ git config --global core.autocrlf input
配置 gitlab 資料庫設置

$ cp config/database.yml{.mysql,}
$ vim config/database.yml
$ chmod o-rwx config/database.yml
安裝必需的 Ruby Gems

$ cd /home/git/gitlab
$ [sudo] gem install charlock_holmes --version '0.6.9.4'
$ bundle install --deployment --without development test postgres aws
初始化資料庫數據(執行輸入 Yes 繼續創建)

$ bundle exec rake gitlab:setup RAILS_ENV=proction
設置 init 腳本

$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
$ sudo chmod +x /etc/init.d/gitlab
檢查 Gitlab 狀態

$ bundle exec rake gitlab:env:info RAILS_ENV=proction
啟動 gitlab 服務

$ sudo service gitlab start
再起檢查,保證所有項目都是綠色

$ bundle exec rake gitlab:check RAILS_ENV=proction
配置 nginx

根據 nginx 的安裝路徑適當修改下面的路徑即可,我們先把 gitlab 提供的配置文件拷貝過去

$ sudo mkdir -p /etc/nginx/conf/sites/
$ sudo cp lib/support/nginx/gitlab /etc/nginx/conf/sites/gitlab.conf
根據 nginx 版本和不同發行版的不同,配置結構可能不同根據你的實際情況載入 gitlab.conf
修改 gitlab.conf 的 YOUR_SERVER_FQDN 為上面設置的 domain。
最後修改 nginx.conf 或者 default.conf 載入 /etc/nginx/conf/site 下所有 conf 文件

http {

include /etc/nginx/conf/site/*.conf;

server {

}
}
保存後,重啟各個服務

$ sudo service nginx reload
$ sudo service gitlab restart
開始 Gitlab 之旅

配置好 hosts 即可訪問 gitlab.dev

$ echo "127.0.0.1 gitlab.dev" >> /etc/hosts
默認的用戶名密碼:

[email protected]
5iveL!fe
各種坑

1. 錯誤日誌報許可權錯誤

2013/11/07 00:42:21 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:21 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public//index.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico/index.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"
2013/11/07 00:42:31 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico", host: "gitlab.web.lo"
解決方案:
$ (sudo) chmod o+x /home/git

2. 8080 埠被佔用

這樣主要是因為 nginx 的配置是做 unicorn 的代理轉發,實際上 gitlab 是由 unicorn 容器驅動,而在配置里默認綁定的是 8080 埠

$ vim /home/git/gitlab/config/unicorn.rb
找到 listen "127.0.0.1:8080", :tcp_nopush => true 修改成其他未佔用的埠號即可。

㈣ gitlab的簡單教程

前言:在上一篇中,已經成功使用docker搭建了Gitlab伺服器,這里就簡單摸索一下大概的使用教程,我自己也是初學者,就大概簡單記錄一下而已,如果有什麼問題,歡迎留言。

1、root用戶登錄後,創建項目

2、新增用戶

3、項目關聯用戶

4、本地機子安裝git,使用 git --version 確定是否安裝成功

5、創建本地倉庫,建立完成後,在目錄下會生成一個「.git」目錄,這樣就能執行git語句了。
git init :是在當前目錄下建立倉庫;
git init 文件路徑 :指定一個目錄創建倉庫

6、也可以從伺服器上克隆一個庫
ssh克隆: git clone [email protected]:root/test-y.git
http克隆: git clone http://gitlab.example.com/root/test-y.git
輸入git的用戶名、密碼即可(Gitlab上注冊/創建的)

7、創建一個分支,並推送到伺服器

推送到伺服器時遇到了一個問題,報錯信息如下(上圖2):

原因:本地新建的分支與遠程分支之間沒有連接起來
解決:直接按提示信息重新執行 git push --set-upstream origin dev1 即可

8、Gitlab服務端,可查看已經推送的信息

9、點擊「Create merge request」按鈕,將dev分支內容合並到主分支上

10、審核人員收到合並消息,審核合並請求。

11、審核通過,合並分支

到這里,大致流程就全部結束了。

git還常用到的一個語句 git pull 從伺服器上拉取更新

㈤ 如何在 Ubuntu/Fedora/Debian 中安裝 GitLab

1. 安裝先決條件
首先,我們需要安裝 GitLab 所依賴的軟體包。我們將安裝 curl,用以下載我們所需的文件;安裝openssh-server ,以此來通過 ssh 協議登錄到我們的機器上;安裝ca-certificates,用它來添加 CA 認證;以及 postfix,把它作為一個 MTA(Mail Transfer Agent,郵件傳輸代理)。
註: 若要安裝 GitLab 社區版,我們需要一個至少包含 2 GB 內存和 2 核 CPU 的 linux 機器。

在 Ubuntu 14 .04/Debian 8.x 中
鑒於這些依賴包都可以在 Ubuntu 14.04 和 Debian 8.x 的官方軟體倉庫中獲取到,我們只需通過使用 apt-get 包管理器來安裝它們。為此,我們需要在一個終端或控制台中執行下面的命令:
#apt-get install curl openssh-server ca-certificates postfix

install dependencies gitlab ubuntu debian

在 Fedora 22 中
在 Fedora 22 中,由於 yum 已經被棄用了,默認的包管理器是 dnf。為了安裝上面那些需要的軟體包,我們只需運行下面的 dnf 命令:
# dnf install curl openssh-server postfix

install dependencies gitlab fedora

2. 打開並開啟服務
現在,我們將使用我們默認的初始化系統來打開 sshd 和 postfix 服務。並且我們將使得它們在每次系統啟動時被自動開啟。

在 Ubuntu 14.04 中
由於在 Ubuntu 14.04 中安裝的是 SysVinit 初始化系統,我們將使用 service 命令來開啟 sshd 和 postfix 守護進程:
# service sshd start
# service postfix start
現在,為了使得它們在每次開機啟動時被自動開啟,我們需要運行下面的 update-rc.d 命令:
# update-rc.d sshd enable
# update-rc.d postfix enable

在 Fedora 22/Debian 8.x 中
鑒於 Fedora 22 和 Debian 8.x 已經用 Systemd 代替了 SysVinit 來作為默認的初始化系統,我們只需運行下面的命令來開啟 sshd 和 postfix 服務:
#systemctl start sshd postfix
現在,為了使得它們在每次開機啟動時可以自動運行,我們需要運行下面的 systemctl 命令:
#systemctl enable sshd postfix
Created symlink from/etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
Created symlink from/etc/systemd/system/multi-user.target.wants/postfix.service to /usr/lib/systemd/system/postfix.service.

3. 下載 GitLab
現在,我們將使用 curl 從官方的 GitLab 社區版倉庫下載二進制安裝文件。首先,為了得到所需文件的下載鏈接,我們需要瀏覽到該軟體倉庫的頁面。為此,我們需要在運行著相應操作系統的 linux 機器上運行下面的命令。

在 Ubuntu 14.04 中
由於 Ubuntu 和 Debian 使用相同的 debian 格式的安裝包,我們需要在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=debs 下搜索所需版本的 GitLab,然後點擊有著 ubuntu/trusty 標簽的鏈接,即我們運行著的 Ubuntu 14.04。接著一個新的頁面將會出現,我們將看到一個下載按鈕,然後我們在它的上面右擊,得到文件的鏈接,然後像下面這樣使用 curl 來下載它。
# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce_8.1.2-ce.0_amd64.deb

Downloading Gitlab Ubuntu

在 Debian 8.x 中
與 Ubuntu 類似,我們需要在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=debs 頁面中搜索所需版本的 GitLab,然後點擊帶有 debian/jessie 標簽的鏈接,即我們運行著的 Debian 8.x。接著,一個新的頁面將會出現,然後我們在下載按鈕上右擊,得到文件的下載鏈接。最後我們像下面這樣使用 curl 來下載該文件。
# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_8.1.2-ce.0_amd64.deb/download

Downloading Gitlab Debian

在 Fedora 22 中
由於 Fedora 使用 rpm 文件來作為軟體包,我們將在 https://packages.gitlab.com/gitlab/gitlab-ce?filter=rpms 頁面下搜索所需版本的 GitLab,然後點擊所需發行包的鏈接,這里由於我們運行的是 Fedora 22,所以我們將選擇帶有 el/7 標簽的發行包。一個新的頁面將會出現,在其中我們可以看到一個下載按鈕,我們將右擊它,得到所需文件的鏈接,然後像下面這樣使用 curl 來下載它。
# curl https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.1.2-ce.0.el7.x86_64.rpm/download

Downloading Gitlab Fedora

4. 安裝 GitLab
在相應的軟體源被添加到我們的 linux 機器上之後,現在我們將使用相應 linux 發行版本中的默認包管理器來安裝 GitLab 社區版。

在 Ubuntu 14.04/Debian 8.x 中
要在運行著 Ubuntu 14.04 或 Debian 8.x linux 發行版本的機器上安裝 GitLab 社區版,我們只需運行如下的命令:
# dpkg -i gitlab-ce_8.1.2-ce.0_amd64.deb

Installing Gitlab Ubuntu Debian

在 Fedora 22 中
我們只需執行下面的 dnf 命令來在我們的 Fedora 22 機器上安裝 GitLab。
# dnf install gitlab-ce-8.1.2-ce.0.el7.x86_64.rpm

Installing Gitlab Fedora

5. 配置和開啟 GitLab
GitLab 社區版已經成功地安裝在我們的 linux 系統中了,接下來我們將要配置和開啟它了。為此,我們需要運行下面的命令,這在 Ubuntu、Debian 和 Fedora 發行版本上都一樣:
# gitlab-ctl reconfigure

Reconfiguring Gitlab

6. 允許通過防火牆
假如在我們的 linux 機器中已經啟用了防火牆程序,為了使得 GitLab 社區版的 web 界面可以通過網路進行訪問,我們需要允許 80 埠通過防火牆,這個埠是 GitLab 社區版的默認埠。為此,我們需要運行下面的命令。

在 iptables 中
Ubuntu 14.04 默認安裝和使用的是 iptables。所以,我們將運行下面的 iptables 命令來打開 80 埠:
# iptables -A INPUT -p tcp -m tcp --dport 80-j ACCEPT
# /etc/init.d/iptables save

在 firewalld 中
由於 Fedora 22 和 Debian 8.x 默認安裝了 systemd,它包含了作為防火牆程序的 firewalld。為了使得 80 埠(http 服務) 能夠通過 firewalld,我們需要執行下面的命令。
# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --reload
success

7. 訪問 GitLab Web 界面
最後,我們將訪問 GitLab 社區版的 web 界面。為此,我們需要將我們的 web 瀏覽器指向 GitLab 伺服器的網址,根據我們的配置,可能是 http://ip-address/ 或 http://domain.com/ 的格式。在我們成功指向該網址後,我們將會看到下面的頁面。

Gitlab Login Screen
現在,為了登錄進面板,我們需要點擊登錄按鈕,它將詢問我們的用戶名和密碼。然後我們將輸入默認的用戶名和密碼,即 root 和 5iveL!fe 。在登錄進控制面板後,我們將被強制要求為我們的 GitLab root 用戶輸入新的密碼。

Setting New Password Gitlab

8. 創建倉庫
在我們成功地更改密碼並登錄到我們的控制面板之後,現在,我們將為我們的新項目創建一個新的倉庫。為此,我們需要來到項目欄,然後點擊 新項目 綠色按鈕。

Creating New Projects
接著,我們將被詢問給我們的項目輸入所需的信息和設定,正如下面展示的那樣。我們甚至可以從其他的 git 倉庫提供商和倉庫中導入我們的項目。

Creating New Project
做完這些後,我們將能夠使用任何包含基本 git 命令行的 Git 客戶端來訪問我們的 Git 倉庫。我們可以看到在倉庫中進行的任何活動,例如創建一個里程碑,管理問題,合並請求,管理成員,便簽,Wiki 等。

Gitlab Menu

總結
GitLab 是一個用來管理 git 倉庫的很棒的開源 web 應用。它有著漂亮的帶有諸多酷炫功能的響應式界面。它還打包有許多酷炫功能,例如管理群組,分發密鑰,持續集成,查看日誌,廣播消息,鉤子,系統 OAuth 應用,模板等。(註:OAuth 是一個開放標准,允許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源(如照片,視頻,聯系人列表),而無需將用戶名和密碼提供給第三方應用。--- 摘取自 維基網路上的 OAuth 詞條) 它還可以和大量的工具進行交互如 Slack,Hipchat,LDAP,JIRA,Jenkins,有很多類型的鉤子和完整的 API。它至少需要 2 GB 的內存和 2 核 CPU 來流暢運行,支持多達 500 個用戶,但它也可以被擴展到多個工作伺服器上。

㈥ 個人Gitlab搭建及配置

訪問http:// ip地址

設置密碼,然後通過 root + password 登錄,當然也可以自己新建用戶。

之後,將要訪問此GitLab的伺服器上的公鑰添加進來就可以進行愉快的玩耍了 (Linux 系統一般在 /root/.ssh 目錄下,Windows一般在 C:\Users\用戶名.ssh 目錄下)

當你完成以上操作之後,你會發現你倉庫中的SSH和HTTP地址是下圖這樣的,所以我們要對GitLab進行IP顯示的配置及埠配置。

修改如下項

修改 gitlab.rb

當你完成以上配置後,還是不能通過 http:// ip location : prot 來訪問你的GitLab倉庫。

修改GitLab ngnix 監聽埠

完成以上設置之後,就可以通過 IP + PORT 來訪問你的GitLab庫了,同時倉庫的HTTP地址顯示也正常

修改SSH埠首先要修改伺服器的SSH埠,這會影響到 Xshell 對伺服器的連接。

完成以上操作之後,一切就都正常了

㈦ ubuntu搭建gitlab伺服器,執行 gitlab-ctl reconfigure,顯示chef client failed。

原因:ubuntu14.04版本應該是 trusty 版本,而下載的gitlab軟體包卻是 xenial版本的
解決:下載trusty版本的 gitlab 進行安裝
查看ubuntu版本的方法:
root@kickseed:~# lsb_release -a
No LSB moles are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty

㈧ GitLab搭建個人(或公司)版本控制系統

說明:Git,Github,GitLab三者關系。

Git - 是一款自由和開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的項目。是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。(svn是集中化的版本控制系統)。

GitHub - 是一個面向開源及私有軟體項目的託管平台(也就一個網站),提供給用戶空間創建git倉儲,保存用戶的一些數據文檔或者代碼等。它可以託管各種git庫,並提供一個web界面。被戲稱為「全世界最大的同性交流社區」。

GitLab - 基於Git的項目管理軟體。使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。

當然啦國內開源中國出的「碼雲」,第一次聽得人還以為是「馬雲」。我醬紫。它跟Github功能差不多,都能建立公有和私有的倉庫。不過嘛感覺有點封閉,社區沒有Github熱鬧。

有的人就說啦,我完全可以在Github或者GitLab上做遠端代碼倉庫,為啥還要倒騰GitLab自建代碼託管系統?就一個字: 「代碼安全性」(公司保密規定)。 對於公司來說,GitLab讓開發團隊對他們的代碼倉庫擁有更多的控制,相比於GitHub,它有不少的特色:

一、自建代碼託管系統都需要做些什麼工作?

1. 選擇開源軟體

Git 大家族的 GitLab ,它提供了完善的用戶許可權管理,除了涵蓋 Git 所有的功能,同時又提供方便的後台管理。分別有CE(社區版)、EE(企業版)、OM(RPM 包完整版)三個版本,目前市面上開發者們的普遍選擇是使用 CE 版的源碼,成本較低且相對方便。

2. 硬體設施方面

如果是對於中小型企業來講,自建機房一般成本較高,所以除非是大型集團企業。現在市面上存在太多的雲伺服器廠商,平均價格多在 5000元/年以上,都是不錯的選擇。

可能遇到的坑:

3.由於個人眼界以及信息不對稱,目前大部分公司都是在公司區域網內自行用GitLab搭建代碼託管系統。部署Gitlab 是對伺服器有配置要求的建議是CPU兩核,內存4G以上。個人經驗,勿噴啦。

二、搭建過程(這里僅是作者接觸的,其實還有很多更高級的盤法)

Gitlab的服務構成

1.搭建方法分為:傳統方式安裝GitLab和Docker安裝(推薦)。

2.傳統安裝過程(平台使用centos7安裝)

安裝和配置必要的依賴項:

安裝Postfix以發送通知郵件:

在安裝Postfix期間,可能會出現配置屏幕。選擇「Internet Site」並按enter鍵。使用您的伺服器的外部DNS以「mail name」並按enter。如果出現額外的屏幕,繼續按enter鍵接受默認值。

添加GitLab鏡像源並安裝gitlab伺服器:

注意這里設置的埠不能被佔用,默認是8080埠,如果8080已經使用,請自定義其它埠,並在防火牆設置開放相對應得埠。

重置並啟動GitLab:

訪問 GitLab頁面:如果沒有域名,直接輸入伺服器ip和指定埠進行訪問

獲取/修改超級管理員root的密碼:

最後我們使用默認的賬號:root 和剛剛設置好的密碼12345678進行登錄。

後面的步驟配置SSH key,git Bash的global config等初始化設置跟GitHub一樣。可是還有一點就是「漢化」。(英文不好的小夥伴)但是有一定風險,後面我打開報502錯誤。有兩種方法:用git比對出英文與中文的補丁,將英文打補丁。第二是直接下載中文版,替換英文。

3.Docker安裝(推薦)

(1)配置docker鏡像

直接從 docker hub 獲取的話速度非常慢,所以需要配置一個鏡像。我使用的是 cloud.io提供的加速器,速度很快。

(2)獲取 GitLab 鏡像

下載完成後,查看鏡像列表

(3)啟動容器

3個--publish指定容器與主機的埠映射,分別是 http、https、ssh

3個--volume指定數據卷的映射,分別是 gitlab 的 配置、日誌、數據

(4)配置外部訪問 URL

修改 gitlab 配置文件:

找到 external_url 這一項修改為自己伺服器的訪問地址:

保存後,重啟容器

(5)訪問

初次訪問時,gitlab 要求我們重置管理員密碼,修改完成後登錄。默認用戶root。

當然以上為個人實驗,公司裡面大部分為CTO等大佬已經搭建完畢,我們主要是折騰。

最後推薦個人用很順手的工具: SourceTree (可視化界面的Git),當然啦要想成為大牛或者裝13也好,還是從Git Bash里敲命令行。

㈨ 搭建GitLab伺服器

GitLab是GitHub的免費私有庫替代方案,並且安裝與配置都很方便。

GitLab要求最少4GB內存,支持小團隊使用沒問題,實測2GB內存的VPS基本沒法用,開swapfile也不行,動不動就60秒超時。因此4GB內存是必須的。

關於這一點,內存大戶主要是Unicorn,基於ruby的http伺服器。Unicorn會在啟動後預先佔用大部分內存,內存會隨著使用逐漸增長,並且不會釋放。根據GitLab和Unicorn的官方文檔,這不是它們的鍋,那麼這個鍋可能是ruby和rails了。解決方法是unicorn-work-kill,會根據請求次數和內存佔用自動重啟Unicorn。Omnibus版的GitLab是默認開啟的。

GitLab分為社區版和企業版,在未付費的情況下,兩者的功能是一樣的。並且社區版整合了CI/CD,因此可以滿足絕大部分的開發需求。

安裝包主要包括Omnibus整合包,Docker、AWS等的雲鏡像,以及一些第三方維護的版本。其中Omnibus直接整合了所有服務端組件,適合自用和練手。

安裝以Omnibus整合包為例,操作系統為Ubuntu16.04。

Gitlab需要 curl,openSSH 和 ca-certificates 這幾個組件:

不過伺服器系統一般自帶,所以是可選的。

郵件服務,用於GitLab發送找回密碼的郵件:

不過如果伺服器沒有域名的話,大部分郵箱會拒收郵件,而管理員帳號可以直接重置其他賬號的密碼,所以是可選的。

官方提供的腳本:

這個腳本會自動添加源到apt 的source list,以及安全key。另外,如果自己伺服器在國內,腳本會自動添加清華的鏡像,速度還行。

先更新apt緩存

推薦使用 apt 而不是 apt-get ,前者大多數情況下更簡單一點。

然後是安裝:

其中 EXTERNAL_URL ,改成自己的域名。沒有域名的話,可以直接設置成IP的形式: http://1.2.3.4 ,這個推測跟nginx服務以及GitLab中的項目地址有關,所以最好正確設置。當然也可以之後在配置文件里更改。

安裝完成後,可以在配置文件中修改配置 /etc/gitlab/gitlab.rb 。

比如之前的 EXTERNAL_URL :

官方還有一個關於 unicorn 的優化建議:

默認值是2,如果伺服器只用於GitLab的話,官方建議是CPU核心數加一,可以提高伺服器的響應速度。不過如果內存只有4G,或者伺服器同時承載其他服務,就不要改了,以免內存不足。另外,這個參數最小值是2,設為1,伺服器可能會卡死。

配置完成後,刷新配置:

每次修改完 gitlab.rb ,都要刷新配置。

如果沒有報錯的話,GitLab就配置完畢並且正常運行了。接下來可以打開瀏覽器開始訪問了。

熱點內容
共享的文件怎麼訪問許可權 發布:2025-05-10 02:02:49 瀏覽:164
如何選生信分析伺服器 發布:2025-05-10 01:53:11 瀏覽:407
移動ip案例雲dns伺服器 發布:2025-05-10 01:51:46 瀏覽:165
俠盜飛車解壓密碼是多少 發布:2025-05-10 01:45:04 瀏覽:712
c語言程序操作 發布:2025-05-10 01:23:04 瀏覽:412
ad濾波演算法 發布:2025-05-10 01:17:59 瀏覽:895
自製網路存儲 發布:2025-05-10 01:03:29 瀏覽:505
java防重復提交 發布:2025-05-10 01:02:32 瀏覽:737
如何在家用樂高製作解壓玩具 發布:2025-05-10 00:55:07 瀏覽:439
linux的mtu 發布:2025-05-10 00:54:52 瀏覽:155