Linux下GitLab的安装及使用

旧时模样 提交于 2020-03-07 19:35:13


一、初始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


 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!