1.GitLab
環境說明
系統版本 CentOS 7.2 x86_64
軟件版本 gitlab-ce-10.8.4
GitLab 是一個用于倉庫管理系統的開源項目,使用Git作為代碼管理工具,并在此基礎上搭建起來的web服務。可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用。
1.1 Gitlab安裝
Gitlab的rpm包集成了它需要的軟件,簡化了安裝步驟,所以直接安裝rpm包即可,rpm包的獲取從官方網站或者國內鏡像源(如:清華Index of /gitlab-ce/yum/el7/ | 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror)獲取,gitlab又分為社區版和企業版(收費),這里部署的是社區版本10.8.4
[root@gitlab ~]# mkdir -p /service/tools #在父目錄新建路徑[root@gitlab ~]# cd /service/tools/[root@gitlab tools]# yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm #安裝下載好的rpm包
或者
[root@gitlab ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm #執行rpm -ivh 在線安裝
這里使用本地安裝
安裝成功,但是需要配置,安裝完成后出現上面的提示,按照提示修改配置文件中的url地址為本地服務器的地址
[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
external_url 'http://云服務器IP'
[root@gitlab tools]# gitlab-ctl reconfigure #重新加載配置
可能會稍微慢一些
?
----------------------不漢化的話,Gitlab的配置到此為止--------------------------------------------------------------------------
1.2 漢化
默認的全英文界面對于英文水平低的來講當然用著很不舒服,于是便需要來一波操作進行漢化,英文好的請自覺忽略 可以不進行該部分操作
[root@gitlab tools]# gitlab-ctl stop #停止gitlab,進行后面的漢化[root@gitlab tools]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION10.8.4 #查看版本
或
[root@gitlab tools]# rpm -qa gitlab-cegitlab-ce-10.8.4-ce.0.el7.x86_64 #查看版本[root@gitlab tools]# ll /opt/gitlab/ #相關目錄
[root@gitlab tools]# ll /var/opt/gitlab #相關目錄
GitLab中文社區的項目,v7-v8.8是由Larry Li發起的"GitLab中文社區版項目"(Larry Li / GitLab 中文社區版 · GitLab),從v8.9之后由@xhang開始繼續漢化項目(xhang / GitLab 中文社區版 · GitLab)
?
[root@gitlab tools]# pwd/service/tools[root@gitlab tools]# mkdir /backup[root@gitlab tools]# cp /opt/gitlab/embedded/service/gitlab-rails/* /backup #防止漢化失敗,備份原文件[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git #下載最新的漢化包
?漢化包的版本更新速度不得而知,所以盡量不要安裝最新版本的gitlab。如果是要下載老版本的漢化包,需要加上老版本的分支,如果想下載10.0.2,可以運行如下語句
[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh[root@gitlab tools]# ls #git下來的文件為gitlabgitlab gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm[root@gitlab tools]# \cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/ #拷貝文件
檢驗漢化
[root@gitlab tools]# gitlab-ctl reconfigure #加載配置(第一次執行此命令會啟動,若只啟動執行start)
啟動時查看控制臺輸出,需要等待一段時間,無輸出后啟動完成,執行free -m命令查看到當前的內存使用情況為
[root@gitlab tools]# free -mtotal used free shared buff/cache availableMem: 2993 2123 156 62 713 597Swap: 2047 0 2047[root@gitlab tools]# netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 4319/node_exportertcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 4628/gitlab-workhortcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 4659/rubytcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4191/unicorn mastertcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4223/nginx: mastertcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4196/sidekiq 5.0.5tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 4642/gitalytcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1439/sshdtcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 4223/nginx: mastertcp 0 0 0.0.0.0:6783 0.0.0.0:* LISTEN 4696/alertmanagertcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 4425/redis_exportertcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 4681/prometheustcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 4710/postgres_exportcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 4696/alertmanagertcp6 0 0 ::1:9168 :::* LISTEN 4659/rubytcp6 0 0 :::22 :::* LISTEN 1439/sshd
2 GitLab的使用
2.1 登錄的基本操作
GitLab終端常用命令
gitlab-ctl start #啟動所有 gitlab 組件;
gitlab-ctl stop #停止所有 gitlab 組件;
gitlab-ctl restart #重啟所有 gitlab 組件;
gitlab-ctl status #查看服務狀態;
gitlab-ctl reconfigure #啟動服務;
vim /etc/gitlab/gitlab.rb #修改默認的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace #檢查gitlab;
gitlab-ctl tail #查看日志;
修改密碼后進行登錄,登錄的用戶名為root
首先查看云服務的安全組當中,8080端口是否開放
然后查看防火墻是否已經關閉
firewall-cmd --state 檢查防火墻狀態
systemctl stop firewalld.service 停止防火墻
查看端口占用情況
修改web端口(如果端口占用)
如果80和8080端口被占用可以修改
[root@gitlab tools]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
listen "127.0.0.1:8080", :tcp_nopush => true
修改nginx端口
[root@gitlab tools]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
listen *:80;
修改Prometheus端口
[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.5:port' #根據需要修改端口
修改后需要重新加載配置并啟動
2.2 使用方法
重置密碼
登錄:默認用戶名是root,密碼使用剛剛重置過的。
創建空白項目
選擇項目路徑,輸入項目名稱,項目描述,選擇項目等級(私人的,內部的,公開的),
我們能看到Gitlab給我們的使用當前項目的教程。學過git和GitHub,想必我這些已經都會了。
我們發現上面有一行黃色的提示,要求我們配置ssh
首先生成公鑰:
[root@gitlab-client ~]# ssh-keygen
[root@gitlab-client ~]# cat .ssh/id_rsa.pub #查看公鑰
?
將上面的公鑰文件復制到gitlab中
我們在遠程機器生成私鑰
生成新的SSH密鑰: ssh-keygen -t rsa -C "your_email@address"
此命令將提示您用于存儲密鑰對和密碼的位置和文件名。當提示輸入位置和文件名時,只需按Enter鍵即可使用默認值。如果使用其他名稱,則不會自動使用該密鑰。
在C盤下 .ssh 文件夾中會生成 id_rsa 和 id_rsa.pub 兩個文件,其中 id_rsa.pub 里面是以ssh-rsa開頭并以您的用戶名和主機結尾的完整密鑰。將密鑰復制粘貼到 profile settings中 SSH keys 選項卡下,add an ssh key ,保存。
步驟:
在window系統打開命令行輸入
ssh-keygen -t rsa -C "your_email@address"
Enter file in which to save the key (/root/.ssh/id_rsa):
在使用ssh-keygen命令生成 RSA 密鑰對時,提示你輸入保存密鑰的文件路徑和文件名。
默認的路徑是/root/.ssh/id_rsa,如果你想使用默認路徑,直接按回車鍵即可。
如果你想指定其他路徑和文件名,可以輸入你想要的完整路徑和文件名,例如/home/user/.ssh/my_rsa_key。需要注意的是,確保你指定的路徑存在且你有寫入權限,否則可能會導致生成密鑰失敗。
另外,如果你輸入的文件名已經存在,ssh-keygen會提示你是否覆蓋該文件,根據你的需求進行選擇即可
Enter passphrase
提示你輸入一個密碼短語(也叫口令、密碼)來保護你的私鑰。
打開id_rsa.pub,把所有內容復制
到Gitlab中將密鑰復制粘貼到 profile settings中 SSH keys 選項卡下,add an ssh key ,保存。跟添加公鑰的步驟完全一致
隨機我們配置本地用戶信息和本地庫創建本地git庫
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3
$ git init
Initialized empty Git repository in D:/testGit3/.git/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git config --local user.name 'zhangsan'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git config --local user.mail 'zhangsan@126.com'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git remote add origin git@192.168.0.108:root/spring_src.git
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ echo 'test' > test.txt
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git status
On branch masterNo commits yetUntracked files:(use "git add <file>..." to include in what will be committed)test.txtnothing added to commit but untracked files present (use "git add" to track)rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git add .
warning: LF will be replaced by CRLF in test.txt.
The file will have its original line endings in your working directory.rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git commit -m 'add a test file'
[master (root-commit) 666da41] add a test file1 file changed, 1 insertion(+)create mode 100644 test.txt
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 216 bytes | 216.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.0.108:root/spring_src.git* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
?
?
此刻我們可以看到遠程倉庫里面文件以及推送。
隨機我們將Spring源代碼上傳Gitlab
此時我可以通過另一個git本地庫克隆
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ git clone git@192.168.0.108:root/spring_src.git
Cloning into 'spring_src'...
remote: Counting objects: 9622, done.
remote: Compressing objects: 100% (6230/6230), done.
remote: Total 9622 (delta 2851), reused 9619 (delta 2851)
Receiving objects: 100% (9622/9622), 13.57 MiB | 14.34 MiB/s, done.
Resolving deltas: 100% (2851/2851), done.
Checking out files: 100% (7948/7948), done.rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ ll
total 12
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring_src/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ cd spring_src/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local user.name 'lisi'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local user.mail 'lisi@126.com'rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local -l
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=git@192.168.0.108:root/spring_src.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
user.name=lisi
user.mail=lisi@126.comrlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ ll
total 70
-rw-r--r-- 1 rlsl180506 197121 11118 2月 19 11:26 build.gradle
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 buildSrc/
-rw-r--r-- 1 rlsl180506 197121 2395 2月 19 11:26 CODE_OF_CONDUCT.adoc
-rw-r--r-- 1 rlsl180506 197121 6308 2月 19 11:26 CONTRIBUTING.md
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 gradle/
-rw-r--r-- 1 rlsl180506 197121 23 2月 19 11:26 gradle.properties
-rwxr-xr-x 1 rlsl180506 197121 5533 2月 19 11:26 gradlew*
-rw-r--r-- 1 rlsl180506 197121 2349 2月 19 11:26 gradlew.bat
-rw-r--r-- 1 rlsl180506 197121 4529 2月 19 11:26 import-into-eclipse.bat
-rw-r--r-- 1 rlsl180506 197121 4078 2月 19 11:26 import-into-eclipse.sh
-rw-r--r-- 1 rlsl180506 197121 1868 2月 19 11:26 import-into-idea.md
-rw-r--r-- 1 rlsl180506 197121 2290 2月 19 11:26 README.md
-rw-r--r-- 1 rlsl180506 197121 1154 2月 19 11:26 settings.gradle
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-aop/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-aspects/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-beans/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context-indexer/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context-support/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-core/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-expression/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-framework-bom/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-instrument/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jcl/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jdbc/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jms/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-messaging/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-orm/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-oxm/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-test/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-tx/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-web/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-webflux/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-webmvc/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-websocket/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 src/
-rw-r--r-- 1 rlsl180506 197121 6 2月 19 11:26 test.txt
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 tx-spring-teach/rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ vi test.txtrlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git add .rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git commit -m 'aa'
[master 1c8f28d] aa1 file changed, 1 insertion(+)rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 250 bytes | 250.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To 192.168.0.108:root/spring_src.gitbf028b3..1c8f28d master -> masterrlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
?
?
?
刷新Gitlab我們可以看到變化。
?
如何完全卸載虛擬機當中的Gitlab
請參考這位博主大大的作品
centos7完全卸載GitLab_centos7 gitlab 卸載-CSDN博客