Gitlab安装
简介
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的 web服务。
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似, 可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器 上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放 在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
相关配置
- 安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
复制代码
- 启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
复制代码
- 设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
复制代码
- 开放ssh以及http服务,然后重新加载防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
复制代码
如果关闭防火墙就不需要做以上配置
安装
下载gitlab包,并且安装
在线下载安装包:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x
复制代码
安装
rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
复制代码
修改gitlab配置
配置文件在/opt/gitlab/etc/gitlab.rb
修改nginx端口
vim /opt/gitlab/etc/gitlab.rb
复制代码
修改gitlab访问地址和端口,默认为80,我们改为82,记得把注释删掉
external_url 'http://ip:82'
nginx['listen_port'] = 82
复制代码
把端口添加到防火墙
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload #重启防火墙
复制代码
修改unicorn端口
同样是在gitlab配置文件
vim /opt/gitlab/etc/gitlab.rb
复制代码
修改unicorn端口,默认为8080,记得把注释删掉
## Advanced settings
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 想要的端口
复制代码
重载配置及重启gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
复制代码
成功
使用
默认账号和密码都为root
,第一次进需要修改密码
创建组
使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限, 不同的组就是公司不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的管理
- 填上相关信息,选择私人模式
- 创建项目,点击【New project】
- 填上项目信息
- 成功创建
创建用户
- 可以看到现在只有一个管理员账户
- 配置用户信息,选择Regular访问权限
- 更改密码
将用户添加到组中
- 进入项目,选择要添加的用户,选择用户权限
Gitlab用户在组里面有5种不同权限:
- Guest:可以创建issue、发表评论,不能读写版本库
- Reporter:可以克隆代码,不能提交,QA、PM 可以赋予这个权限
- Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
- Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个 权限
- Owner:可以设置项目访问权限 – Visibility Level、删除项目、迁移项目、管理组成员,开发组组 长可以赋予这个权限
SSH密钥配置
SSH免密登录示意图
- 在jenkins服务器使用root用户生成公钥和私钥
ssh-keygen -t rsa -C "your name".
复制代码
一路回车,使用默认值即可,可以无需设置密码。
id_rsa:私钥文件
id_rsa.pub:公钥文件
-
把生成的公钥放在Gitlab中
以root账户登录->点击头像->Settings->SSH Keys 复制刚才id_rsa.pub文件的内容到这里,点击【Add Key】
-
在Jenkins中添加凭证,配置私钥
在Jenkins添加一个新的凭证,类型为”SSH Username with private key”,把刚才生成私有文件内容复制过来
成功,接下来可以往gitlab仓库提交代码了,jenkins也可以从gitlab拉取代码进行构建
by_白羊