Git系列②之部署企業級開源倉庫gitlab服務器

Git系列②之部署企業級開源倉庫gitlab服務器html

上一篇咱們介紹了github的常見使用方法,下面開始部署本地開源倉庫gitlablinux

GitLab 是一個用於倉庫管理系統的開源項目。
1.安裝配置gitlab依賴項
如想使用Postfix來發送郵件,在安裝期間請選擇'Internet Site'. 您也能夠用sendmai或者 配置SMTP服務並使用SMTP發送郵件在 Centos7系統上, 下面的命令會在系統防火牆裏面開放HTTP和SSH端口.nginx

安裝相關依賴,並設置開機自啓動git

# yum install -y curl policycoreutils openssh-server openssh-clients postfix
# systemctl enable sshd postfix
# systemctl start sshd postfix
# firewall-cmd --permanent --add-service=http
# systemctl reload firewalld

2.添加GitLab倉庫,並安裝到服務器github

# yum方式安裝web

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

也能夠直接下載gitlab-ce-8.10.5-ce.0.el7.x86_64.rpm後本地安裝(推薦)redis

注意:
經測試最新版本的 gitlab-ce-9.3.0-ce.0.el7.x86_64.rpm 沒法進行ssh-key的認證,因此本次使用gitlab-ce-8.10.5版本
下載地址:https://packages.gitlab.com/gitlab/gitlab-cespring

[root@web01 ~]# yum localinstall -y gitlab-ce-8.10.5-ce.0.el7.x86_64.rpm

 

3.配置並啓動github服務,若是配置文件發生更改須要從新執行此命令:sql

# gitlab-ctl reconfigure

 

查看狀態vim

[root@web01 ~]# gitlab-ctl status
run: gitlab-workhorse: (pid 12247) 73s; run: log: (pid 12148) 86s
run: logrotate: (pid 12172) 84s; run: log: (pid 12171) 84s
run: nginx: (pid 12157) 85s; run: log: (pid 12156) 85s
run: postgresql: (pid 12002) 125s; run: log: (pid 12001) 125s
run: redis: (pid 11919) 136s; run: log: (pid 11918) 136s
run: sidekiq: (pid 12138) 92s; run: log: (pid 12137) 92s
run: unicorn: (pid 12277) 60s; run: log: (pid 12105) 94s

查看nginx日誌:

[root@web01 ~]# gitlab-ctl tail nginx
==> /var/log/gitlab/nginx/current <==

==> /var/log/gitlab/nginx/error.log <==

==> /var/log/gitlab/nginx/gitlab_access.log <==

==> /var/log/gitlab/nginx/gitlab_error.log <==

==> /var/log/gitlab/nginx/gitlab_access.log <==
192.168.3.12 - - [29/Jun/2017:14:17:44 +0800] "GET / HTTP/1.1" 302 100 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

 

4.訪問web界面:


# 如打開之後是502的界面,須要檢查80和8080端口是否被佔用,另外增長內存,而後從新執行3步驟

4.1關閉登陸頁面的註冊功能,不然可能致使信息泄露

最後點下方的save
退出登陸,驗證是否還有註冊的功能:

能夠看到註冊功能已經關閉了

4.2添加用戶,一個用戶能夠說就是一個開發人員,配置好用戶名,郵箱後

從新選擇建立的用戶點擊Edit設置密碼

4.3使用新帳戶登陸,首次登陸要設置密碼,建立組,組裏面能夠有多個項目分支,能夠將開發添加到組裏面進行設置權限,不一樣的組就是公司不一樣的開發項目或者業務模塊,不一樣的組添加不一樣的開發便可實現對開發設置權限的管理

4.4建立項目:

將用戶添加到組:
Admin area–組名:

爲項目建立一個web頁面:
Project–組名/項目名–add a README—

測試客戶端更新名提交代碼,安裝git客戶端:
# yum install git -y

5.使用git更新及提交代碼:

5.1 克隆代碼:

# mkdir /source 
# cd /source/

 

①http方式克隆

# git clone http://192.168.3.198/myweb/web-demo.git
Cloning into 'web-demo'...
Username for 'http://192.168.3.198': reblue520
Password for 'http://reblue520@192.168.3.198': 
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
[root@master source]# ll
total 4
drwxr-xr-x 3 root root 4096 Jun 26 18:00 web-demo
[root@master source]# cat web-demo/
.git/ index.html README.md 
[root@master source]# cat web-demo/index.html 
<h1>my first web project</h1>

 

克隆報錯,是由於centos6.5默認的git客戶端版本過低,centos7沒有該問題

[www@master source]$ git clone http://192.168.3.198/myweb/web-demo.git
Initialized empty Git repository in /source/web-demo/.git/
error: The requested URL returned error: 401 Unauthorized while accessing http://192.168.3.198/myweb/web-demo.git/info/refs

fatal: HTTP request failed

 

解決辦法:

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
cd /usr/local/src 
wget https://www.kernel.org/pub/software/scm/git/git-1.8.3.1.tar.gz
tar xzf git-1.8.3.1.tar.gz 
cd git-1.8.3.1
./configure 
make 
make prefix=/usr/local install 
[root@master git-1.8.3.1]# git --version
git version 1.8.3.1

 

②經過ssh-key方式克隆

將客戶端www用戶的公鑰拷貝到gitlab服務器的web端項目ssh-key中

[www@master source]$ cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArALvWj9fYnDtZxOue7OXvznI02QAyQgeR1SkjnlE3YwZIfjOJU1x2n7jPUxRuPR+wQPRZ9/AQUD5mNzYGLGxXY0Tpjw7zRQ8HFEmZSm4NgMNfYedyHpWbbJLrYTR4vg5pNFtJm7vmZdaV6JP6WLtyDkC83pKK8oOOha8PhNwXKcMMUMjS9NGhbaR0I8cDsgOOo0wAZl8oNGD/6FWc4XsDAfvWLac4a9BUtisn14YZcTqjEwkEv0DxnXZ2yVtGwPNmiPEhdfvyDM6kPtBL0BptWEVWvqD0bBS31Ro8FH3BPWunrgDQA/XAkjhHChF+A0mU+lVYncqjtSG9HsKvMUU1Q== www@master

 

克隆代碼

[www@master source]$ git clone git@192.168.3.198:myweb/web-demo.git
Cloning into 'web-demo'...
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 9 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (9/9), done.

 

5.2添加分支,非組的屬主是不能直接將代碼提交到master分支的,須要建一個另外的分支,代碼提交以後測試無誤後再進行合併:

# cd /source/web-demo
# git branch dev #本地建立一個分支
# git checkout dev #切換本地分支
# git push origin dev #將本地分支發佈到github
# vim index.html #更新一下代碼
<h1>my first web project</h1>
# season

spring
summer
autumn
winter
# git add index.html #提交更改到本地版本庫
# git commit -m "second commit" #提交到git倉庫
# git push -u origin dev #提交到一個分支

# 提交成功信息以下:

# 若是提交代碼報錯,提示沒有權限提交,請檢查提交的用戶是否有對組的提交權限:

二:git經常使用命令彙總:

命令 git config --global user.name "name" #配置git使用用戶
# git config --global user.email "mail" #配置git使用郵箱
# git config --global color.ui true #配置顏色
# git config --list #查看當前配置
# git init #初始爲git工做目錄
# git status #查看git狀態
# git reflog #查看將來歷史更新點
# git reset --hard 4bf5b29 #找到歷史還原點的SHA-1值,就能夠還原(值不寫全,系統會自動匹配)
# git checkout -- file #恢復暫存區至上一版本
# git add [file1] [file2] ... #添加指定文件至暫存區
# git add [dir] #添加指定目錄至暫存區,包括子目錄(遞歸添加)
# git add . #添加當前目錄全部文件至暫存區
# git rm [file1] [file2] ... #刪除工做區文件,並將此次刪除放入暫存區
# git rm –cached [file] #中止追蹤指定文件,但該文件會保留在工做區
# git mv [file-old] [file-new] #重命名文件,修改後放入暫存區

 

配置gitlab爲http方式:
將http://web01/web/web-demo.git 改成http://192.168.3.198/web/web-demo.git

步驟:
# vim /etc/gitlab/gitlab.rb
external_url 'http://web01'
改成
external_url 'http://192.168.3.198'

從新配置服務生效
# gitlab-ctl reconfigure

新建項目和歷史項目都會變成IP了http://192.168.3.198

相關文章
相關標籤/搜索