GitLab的安装及基本使用

一、GitLab的安装与配置

方式一:


(1)配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
复制以下内容:
使用的是清华大学镜像仓库

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

(2)更新本地yum缓存

sudo yum makecache

(3)安装GitLab社区版

sudo yum install gitlab-ce #自动安装最新版
sudo yum install gitlab-ce-x.x.x #安装指定版本

方式二:


到gitlab官网下载安装包到本地安装
地址:https://packages.gitlab.com/gitlab/gitlab-ce
这里使用方式二安装,版本是gitlab-ce-11.3.11

[root@centos7 ~]# ls
anaconda-ks.cfg  gitlab-ce-11.3.11-ce.0.el7.x86_64.rpm  initial-setup-ks.cfg  original-ks.cfg

1、安装

[root@centos7 src]# yum install -y gitlab-ce-11.3.11-ce.0.el7.x86_64.rpm

2、gitlab 配置

[root@centos7 src]# vim /etc/gitlab/gitlab.rb
[root@centos7 src]# grep "^[a-Z]" /etc/gitlab/gitlab.rb
external_url 'http://192.168.239.132'
##一下部分用于配置邮件服务
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]"  ##自己的qq邮箱账号
gitlab_rails['smtp_password'] = "xxxx"  ##开通smtp时返回的授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"   
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "[email protected]"  ##指定发送邮件的邮箱地址
user["git_user_email"] = "[email protected]"   ##指定接收邮件的邮箱地址

3、初始化服务
修改好配置文件后,使用gitlab-ctl reconfigure命令重载一下配置文件。

[root@centos7 ~]# gitlab-ctl reconfigure

启动服务

[root@centos7 ~]#  gitlab-ctl start
ok: run: alertmanager: (pid 8000) 137s
ok: run: gitaly: (pid 7951) 139s
ok: run: gitlab-monitor: (pid 7970) 138s
ok: run: gitlab-workhorse: (pid 7931) 140s
ok: run: logrotate: (pid 7206) 360s
ok: run: nginx: (pid 7187) 367s
ok: run: node-exporter: (pid 7278) 347s
ok: run: postgres-exporter: (pid 8024) 136s
ok: run: postgresql: (pid 6887) 456s
ok: run: prometheus: (pid 7985) 137s
ok: run: redis: (pid 6812) 468s
ok: run: redis-exporter: (pid 7420) 320s
ok: run: sidekiq: (pid 7143) 379s
ok: run: unicorn: (pid 7100) 385s

查看gitlab的状态信息,可以看到运行了好多服务。

[root@centos7 ~]# gitlab-ctl status
run: alertmanager: (pid 8000) 2331s; run: log: (pid 8032) 2329s
run: gitaly: (pid 7951) 2333s; run: log: (pid 7983) 2331s
run: gitlab-monitor: (pid 7970) 2332s; run: log: (pid 7999) 2331s
run: gitlab-workhorse: (pid 7931) 2334s; run: log: (pid 7972) 2332s
run: logrotate: (pid 7206) 2555s; run: log: (pid 7943) 2334s
run: nginx: (pid 7187) 2562s; run: log: (pid 7973) 2333s
run: node-exporter: (pid 7278) 2542s; run: log: (pid 7984) 2332s
run: postgres-exporter: (pid 8024) 2331s; run: log: (pid 8035) 2330s
run: postgresql: (pid 6887) 2651s; run: log: (pid 7918) 2336s
run: prometheus: (pid 7985) 2332s; run: log: (pid 7990) 2332s
run: redis: (pid 6812) 2663s; run: log: (pid 7926) 2335s
run: redis-exporter: (pid 7420) 2515s; run: log: (pid 8001) 2332s
run: sidekiq: (pid 7143) 2574s; run: log: (pid 7920) 2336s
run: unicorn: (pid 7100) 2580s; run: log: (pid 7919) 2336s

浏览器输入地址,第一次登陆时会有一个更改密码的操作,直接设定一个新密码即可

接着会进入登录/注册页面,一般注册页面后期都会关掉,因为其他人员只要知道地址就能注册账号,只是很不安全的。默认登录用户是root,密码是上面设定的密码。

关闭账号注册,默认情况下可以直接注册账号,因此一般都关闭次功能。

保存更改

退出重新登录即可验证是否还有注册选项。

二 、使用教程

1、创建 git 账户

2、创建组


使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,不同的组就是不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的管理

3、管理员创建项目

在创建好项目之后,页面上跳出提示:“在将SSH密钥添加到个人资料之前,您将无法通过SSH提取或推送项目代码”

因此,我们还要在gitlab主机上生成密钥对,并导入公钥。(如果不通过ssh方式拉取和推送代码,也可以通过HTTP方式,不过在拉取过程中需要输入用户名和密码)
(1)安装Git工具。

[root@centos7 ~]# yum install git

(2)、生成密钥文件:使用ssh-keygen生成密钥文件.ssh/id_rsa.pub。

[root@centos7 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:oMjfJQM+twQRdTUvv+WBr1yJ9Fh8YiNt/XrDyLTJAME [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|    oo. o.o      |
|     . . E o     |
|    o .   o .    |
| . o + . . o + . |
|  o + = S . = @ o|
|   . = =   o # *.|
|    . o     O @ .|
|           . O +.|
|            o ...|
+----[SHA256]-----+
[root@centos7 ~]# ll .ssh/ 
总用量 12
-rw------- 1 root root 1679 6月   6 10:35 id_rsa
-rw-r--r-- 1 root root  402 6月   6 10:35 id_rsa.pub
-rw-r--r-- 1 root root  574 3月   8 22:54 known_hosts

(3)把公钥导入到gitlab中,复制公钥并粘贴到指定位置。

key添加完成

4、将用户添加到组。

5、创建一个测试页面


找到项目界面

添加一个测试页面

6、git 客户端测试 clone 项目


根据命令提示,我们需要在gitlab主机上设置一下全局配置。

[root@centos7 ~]# git config --global user.name "root"
[root@centos7 ~]# git config --global user.email "[email protected]"

克隆项目到本地

[root@centos7 git-project]# git clone [email protected]:test-service/test-project.git
正克隆到 'test-project'...
The authenticity of host '192.168.239.132 (192.168.239.132)' can't be established.
ECDSA key fingerprint is SHA256:ETZ2hxYcCzc3U0YgZLs8o1YLuFBC+NTweKwRUABJF4w.
ECDSA key fingerprint is MD5:c9:f1:fa:3c:04:a9:7f:cb:10:f5:51:df:79:46:30:a4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.239.132' (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)
接收对象中: 100% (3/3), done.

编辑文件并测试提交:

[root@centos7 test-project]# vim index.html 

<h1>first line</h1>
<h1>second line</h2>

提交测试

[root@centos7 test-project]# git add index.html  ##将文件加入到暂存区
[root@centos7 test-project]# git commit -m "v1"  ##将文件提交到工作区
[master 84a505c] v1
 1 file changed, 2 insertions(+), 1 deletion(-)
[root@centos7 test-project]# git push          ##推送至gitlab仓库中
warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
进行如下设置:

  git config --global push.default matching

若要不再显示本信息并从现在开始采用新的使用习惯,设置:

  git config --global push.default simple

参见 'git help config' 并查找 'push.default' 以获取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 'current' 代替 'simple' 模式)

Counting objects: 5, done.
Writing objects: 100% (3/3), 262 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:test-service/test-project.git
   f53bb92..84a505c  master -> master

git web 端验证数据

猜你喜欢

转载自blog.csdn.net/xianjuke008/article/details/110038289
今日推荐