由于上一篇搭建的git服务器,进行权限控制时很不方便,决定重新搭建gitlab作为管理项目工具,有web页面操作起来也很方便。本文只记录安装过程以备后用。
一、服务端
- 配置服务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
- 更新yum缓存
yum makecache
- 安装gitlab
yum install gitlab-ce -y
- 修改gitlab相关配置
vim /etc/gitlab/gitlab.rb
//修改gitlab 默认URL
external_url 'http://serverIp:port' //根据自己的服务器填写ip和port
//修改gitlab默认仓库地址
git_data_dirs({
"default" => {
"path" => "/app/data/git-data"
}
})
//修改gitlab注册邮件发送
user['git_user_email']="你的邮箱@163.com"
gitlab_rails['smtp_enable']=true
gitlab_rails['smtp_address']="smtp.163.com"
gitlab_rails['smtp_port']=465
gitlab_rails['smtp_user_name']="你的邮箱@163.com"
gitlab_rails['smtp_password']="你的邮箱授权码!!不是登录密码 是授权码"
gitlab_rails['smtp_domain']="163.com"
gitlab_rails['smtp_authentication']="login"
gitlab_rails['smtp_enable_starttls_auto']=true
gitlab_rails['smtp_tls']=true
gitlab_rails['gitlab_email_from']="你的邮箱@163.com"
上面提及的邮箱授权码获取步骤:
若第一次设置,勾选POP3/SMTP服务后会提示设置授权码
然后验证邮箱获取授权吗即可
- 启动gitlab服务
gitlab-ctl start #启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 启动服务;(重新加载配置文件,在GitLab初次安装后可以使用,但是在业务环境中不可随意使用,reconfigure会把一些过去的config还原,导致修改的端口以及域名等都没有了。)
vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
执行启动命令后,至此,服务端gitlab已经配置好
二、web端
-
登录gitlab
浏览器访问,服务端配置的url:http://你的服务器ip:端口
首次登录会强制用户修改密码。密码修改成功后,输入用户名root和密码进行登录。
注:若无法访问,则可以使用ps -ef命令查看服务是否正常启动,若未启动, 则重新开启,若仍然启动不了,则可使用gitlab-ctl reconfigure(仅限初始环境下使用)命令启动服务, 然后再访问GitLab。 -
取消gitlba注册用户
由于目前是开放注册,任何人都可以注册使用,显然不是我们想要的,服务端我们配置了邮箱,用于管理员邀请用户发送邮件。
-
管理员添加用户
输入用户的姓名邮箱后,邮箱会有一个注册邀请,注册即可。 -
创建项目并添加开发人员
创建完成后,点击项目跳到项目管理页面,找到setting->members,进行添加开发人员。默认master是受保护项目,可以添加developer作为其他分支的开发。也可以自己设置用户组,都一样
-
注册的用户,添加自己的ssh-key
注册的用户登录后,将自己本机的公钥id_rsa.pub复制添加至如图页面中。(如何生成公钥参见:https://www.jianshu.com/p/d2d542143be5)
关于用户权限分类:
Guest(访客) – 阅览项目、写留言薄;
Reporter(报告人)- 阅览项目、写留言薄、拉项目、下载项目、创建代码片 段;
Developer(开发者)- 阅览项目、写留言薄、拉项目、下载项目、创建代码 片段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分支 、创建标签、编写 wiki;
Master(管理者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片 段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分支 、创建标签、编写 wiki、增加团队成员、推送受保护的分支、移除受保护 的分支、编辑项目、添加部署密钥、配置项目钩子;
Owner(所有者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分支 、创建标签、编写 wiki、增加团队成员、推送受保护的分支、移除受保护 的分支、编辑项目、添加部署密钥、配置项目钩子、开关公有模式、将项目转 移到另一个名称空间、删除项目;
至此gitlab搭建已经完成