一、初始GitLab
GitLab是利用Ruby on Rails一個開源的版本管理系統,實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。
與Github類似,GitLab能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。
它還提供一個代碼片段收集功能可以輕松實現代碼復用,便於日后有需要的時候進行查找。
Git的家族成員
Git:是一種版本控制系統,是一個命令,是一種工具。
Gitlib:是用於實現Git功能的開發庫。
Github:是一個基於Git實現的在線代碼托管倉庫,包含一個網站界面,向互聯網開放。
GitLab:是一個基於Git實現的在線代碼倉庫托管軟件,你可以用gitlab自己搭建一個類似於Github一樣的系統,一般用於在企業、學校等內部網絡搭建git私服。
二、實驗環境(rhel7.3版本)
1、selinux和firewalld狀態為disabled
2、各主機信息如下:
主機 ip
server1(git) 172.25.83.1
三、Gitlab常用命令
gitlab-ctl start #啟動所有gitlab組件;
gitlab-ctl stop #停止所有gitlab組件;
gitlab-ctl restart #重啟所有gitlab組件;
gitlab-ctl status #查看服務狀態;
gitlab-ctl reconfigure #修改配置文件之后,重新加載gitlab配置文件並啟動所有gitlab組件
vim /etc/gitlab/gitlab.rb #修改默認的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace #檢查gitlab;
gitlab-ctl tail #查看日志;
gitlab-ctl --help #查看gitlab命令的幫助
四、部署GitLab
1、下載並安裝Gitlab社區版軟件:gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm
[root@server1 ~]# ls
gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm
[root@server1 ~]# yum install gitlab-ce-11.2.0-ce.0.el7.x86_64.rpm -y #安裝GitLab社區版。ce表示社區版,ee表示企業版
2、編輯配置文件/etc.gitlab/gitlab.rb
[root@server1 ~]# vim /etc/gitlab/gitlab.rb
13 external_url 'http://172.25.83.1' #訪問gitlab的地址
[root@server1 ~]# gitlab-ctl reconfigure #重載服務,過程較長耐心等待
重載服務之后,查看啟動的所有的gitlab組件
[root@server1 salt]# gitlab-ctl status
run: alertmanager: (pid 1300) 275s; run: log: (pid 1298) 275s
run: gitaly: (pid 1293) 275s; run: log: (pid 1292) 275s
run: gitlab-monitor: (pid 1297) 275s; run: log: (pid 1296) 275s
run: gitlab-workhorse: (pid 1285) 275s; run: log: (pid 1284) 275s
run: logrotate: (pid 1280) 275s; run: log: (pid 1279) 275s
run: nginx: (pid 1289) 275s; run: log: (pid 1288) 275s
run: node-exporter: (pid 1287) 275s; run: log: (pid 1286) 275s
run: postgres-exporter: (pid 1302) 275s; run: log: (pid 1301) 275s
run: postgresql: (pid 1278) 275s; run: log: (pid 1274) 275s
run: prometheus: (pid 1299) 275s; run: log: (pid 1294) 275s
run: redis: (pid 1277) 275s; run: log: (pid 1273) 275s
run: redis-exporter: (pid 1291) 275s; run: log: (pid 1290) 275s
run: sidekiq: (pid 3104) 90s; run: log: (pid 1281) 275s
run: unicorn: (pid 1276) 275s; run: log: (pid 1275) 275s
3、登錄gitlab http://172.25.83.1
用戶:root 第一次登錄需要強制修改密碼(密碼至少要8位)
用修改過后的密碼進行login
4、創建Project
<1>安裝Git工具linux:安裝Git,使用自帶的源安裝。—其實在之前配置Git本地倉庫時已經做過這步,這里不需要再做
[root@server1 ~]# yum install git -y
<2>生成密鑰文件:使用ssh-keygen生成密鑰文件.ssh/id_rsa.pub—其實在之前配置Git本地倉庫與Github遠程倉庫關聯時已經做過這步,這里不需要再做
[root@server1 ~]# ssh-keygen
[root@server1 ~]# ls .ssh/
id_rsa id_rsa.pub
<3>在GitLab的主頁中新建一個Project
在web界面點擊“Create a project”:
在Project name中填入要創建的項目的名稱(我這里創建的項目的名稱是test),勾選Initialize this repository with a README,這樣GitHub會自動為我們創建一個README.md文件。創建完畢后,可以看到README.md文件,並點擊“Create project“創建工程
根據提示,我們點擊橙色字體的“add an SSH key”,進行SSH key的添加
[root@server1 ~]# cd .ssh/
[root@server1 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3xeeqOavrqvenQHbGkepogV1YbggV/086mA28HX1iXe3MVXIKt9+1gBJdN8lmhUz9HPgADPBhaOfM3jgP459lf9bFBqd0x5doOA+JN0LtEiM0K4kSQ8yb3ViExN8iqLd4jxVhcjIuPmHfD+JhEG0iGJ79tXNL3m7GlONNq7lODvNuquq5kUK2u7/9cJfI9Bmow8lX92qxF0jz82n73UeYOvCh1069vWDVbONCUB7lJMdXQPC2XPfelyuWmDGExxdUqM4xLcTBBFx5XsMyjQvA+zljytYKphgNEO3hC0hWGxKnEw4R5U/stAROBG/W+nNzkupoWGFjIo1Zax52PY+x root@server1
點擊Add key
5、克隆項目test,在本地生成同名目錄,並且目錄中會有所有的項目文件
<1>進入創建的test項目主界面
點擊Your projects
點擊Administrator / test
<2>將Gitlab上的遠程項目test克隆到本地
[root@server1 ~]# git clone git@172.25.83.1:root/test.git #在哪個目錄下執行該命令都可以,我這里想把克隆到本地的test項目放在root用戶的家目錄下,所以我這里在root用戶的家目錄下執行該名林。
Cloning into 'test'...
The authenticity of host '172.25.83.1 (172.25.83.1)' can't be established.
ECDSA key fingerprint is 36:fe:bc:26:f8:92:25:e4:b6:f3:d3:54:dc:06:a5:c0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.83.1' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[root@server1 ~]# ls
test
注意把Git庫的地址換成你自己的,然后進入test目錄看看,已經有README.md文件了:
[root@server1 ~]# cd test/
[root@server1 test]# ls
README.md
[root@server1 test]# cat README.md
# test
6、我們可以在本地項目test中編輯內容,並將內容推送到Gitlab遠程項目test下
<1>添加git用戶信息—其實在之前配置Git本地倉庫時已經做過這步,這里不需要再做
[root@server1 demo]# git config --global user.name xjj #設置用戶名
[root@server1 demo]# git config --global user.email xjj@xjj.com #設置用戶郵箱
[root@server1 ~]# pwd
/root
[root@server1 ~]# cat .gitconfig
[user]
name = xjj
email = xjj@xjj.com
<2>創建需要上傳到GitLab中的目標文件
[root@server1 test]# pwd
/root/test
[root@server1 test]# echo www.xin.com > index.html #必須在項目目錄test下執行該命令
[root@server1 test]# cat index.html
www.xin.com
<3>將index.html文件加入到索引中
[root@server1 test]# git add index.html
<4>將index.html提交到本地倉庫
[root@server1 test]# git commit -m "add index.html"
[master 9bcf5d2] add index.html
1 file changed, 1 insertion(+)
create mode 100644 index.html
<5>將文件同步到GitLab服務器上
[root@server1 test]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 278 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@172.25.83.1:root/test.git
df45c1d..9bcf5d2 master -> master
Branch master set up to track remote branch master from origin.
<6>在網頁中查看上傳的index.html文件已經同步到GitLab中
點擊index.html
————————————————
版權聲明:本文為CSDN博主「Cinjosy」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_42303254/java/article/details/89232113