GitLab的安装和使用

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/VERSION

10.8.4        #查看版本
或
[root@gitlab tools]# rpm -qa gitlab-ce

gitlab-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下来的文件为gitlab

gitlab 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 -m

total used free shared buff/cache available

Mem: 2993 2123 156 62 713 597

Swap: 2047 0 2047

[root@gitlab tools]# netstat -lntup

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 4319/node_exporter

tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 4628/gitlab-workhor

tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 4659/ruby

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4191/unicorn master

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4223/nginx: master

tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4196/sidekiq 5.0.5

tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 4642/gitaly

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1439/sshd

tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 4223/nginx: master

tcp 0 0 0.0.0.0:6783 0.0.0.0:* LISTEN 4696/alertmanager

tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 4425/redis_exporter

tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 4681/prometheus

tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 4710/postgres_expor

tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 4696/alertmanager

tcp6 0 0 ::1:9168 :::* LISTEN 4659/ruby

tcp6 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 master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        test.txt

nothing 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 file
 1 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.com

rlsl180506@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.txt

rlsl180506@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] aa
 1 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.git
   bf028b3..1c8f28d  master -> master

rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)

刷新Gitlab我们可以看到变化。

如何完全卸载虚拟机当中的Gitlab

请参考这位博主大大的作品

centos7完全卸载GitLab_centos7 gitlab 卸载-CSDN博客

相关推荐
Nejosi_念旧2 天前
开发常用工具
flutter·vue·gitlab·postman
yaoshengting3 天前
GitLab集成Jira
gitlab·jira
mrhaoxiaojun5 天前
gitlab runner正常连接 提示 作业挂起中,等待进入队列 解决办法
gitlab
铜锣烧1号5 天前
【学习笔记】GitLab 使用技巧和说明和配置和使用方法
git·python·pycharm·gitlab
极小狐5 天前
如何在 Rocky Linux 上安装极狐GitLab?
gitlab·devsecops·devops·极狐gitlab·安全合规
ihengshuai6 天前
Gitlab搭建npm仓库
前端·docker·npm·gitlab
Channing Lewis7 天前
在使用 GitLab API 时,如果只能获取少量的 Merge Request(MR)信息,而没有完整的数据
gitlab·mr
Channing Lewis7 天前
如何查看gitlab mr labels 添加和删除的历史
gitlab·mr
ihengshuai7 天前
Gitlab流水线配置
前端·docker·gitlab·devops
阿里云云原生7 天前
GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
阿里云·云原生·gitlab