centos7部署gitlab

gitlab安装

#方式方法一:下载gitlab-ce的rpm包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.12.9-ce.0.el7.x86_64.rpm
安装依赖
yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python
开始rpm包安装
rpm -ivh gitlab-ce-13.12.9-ce.0.el7.x86_64.rpm
gitlab-ce-13.12.9-ce.0.el7.x86_64.rpm
# 方式二:配置yum源vim /etc/yum.repos.d/gitlab.repo
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
Repo_gpgcheck=0
Enabled=1
gpgcheck=0
Gpgkey=https://packages.gitlab.com/gpg.keyyum clean all && yum makecache

yum -y install gitlab-ce 		===>最新版(会报错)
yum -y install gitlab-ce-13.6.1	        ===>指定版本
yum -y install gitlab-ce --nogpgcheck   ===>不检查安装

# 配置gitlab默认配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.112'  	===>这里一定要加上http://

==========按需部分=========
配置邮件服务
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "hgzerowzh@qq.com"        # 自己的qq邮箱账号
gitlab_rails['smtp_password'] = "xxx"  			   # 开通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'] = "hgzerowzh@qq.com"     # 指定发送邮件的邮箱地址
user["git_user_email"] = "shit@qq.com"                     # 指定接收邮件的邮箱地址

修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效
gitlab-ctl reconfigure 		# 重载配置文件
Gitlab常用命令
# 启停所有 gitlab组件
gitlab-ctl {start|stop|restart|status} 		
# 启动服务(重新编译gitlab的配置)
gitlab-ctl reconfigure
# 验证配置文件
gitlab-ctl show-config   
# 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace    
# 查看日志
gitlab-ctl tail
gitlab-ctl tail nginx/gitlab_access.log
gitlab-ctl tail nginx/gitlab_error.log
# 常用目录
日志地址:/var/log/gitlab/   # 对应各服务的打印日志 
服务地址:/var/opt/gitlab/   # 对应各服务的主目录 
外网访问的端口,如果服务器已经有服务器占用了80,可将其改成
server {
  listen *:8888;

  server_name gitlab.test.domain.com;

  access_log  /var/log/gitlab/nginx/gitlab_access.log gitlab_access;
  error_log   /var/log/gitlab/nginx/gitlab_error.log;

  if ($http_host = "") {
    set $http_host_with_default "gitlab.test.domain.com:8888";
  }


创建项目(假设项目名叫app01)--->创建组--->创建用户-->添加User到Group中并授权---> |
配置SSH(右上角个人-settings-SSH Keys)--->往项目中添加成员---> |
将本地文件推送到Gitlab--->
# 将app01项目克隆下来
git clone git@192.168.1.112:java/app01.git
# 初始化配置
git config --global user.name "hgzero"
git config --global user.email "hgzero@qq.com"
# 推送到gitlab
git add .
git commit -m "first edition"
git push origin master

GitLab备份和恢复

备份

vim /etc/gitlab/gitlab.rb
# 备份保存的位置,这里是默认位置,可修改成指定的位置
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
# 设置备份保存的时间,超过此时间的日志将会被新覆盖
# gitlab_rails['backup_keep_time'] = 604800		# 这是默认设置,保存7天


如果自定义了备份保存位置,则要修改备份目录的权限,比如:
[root@node2 ~]# chown -R git.git /data/backup/gitlab

# 重读配置文件
gitlab-ctl reconfigure  

# 重启gitlab
gitlab-ctl restart


# 可以将此命令写入crontab,以实现定时备份
[root@node2 ~]# /usr/bin/gitlab-rake gitlab:backup:create
    
设置定时任务
[root@node2 ~]# crontab -e
#每天凌晨2点定时创建备份
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create		


备份时间的识别
# 备份后的文件类似这样的形式:1494170842_gitlab_backup.tar,可以根据前面的时间戳确认备份生成的时间
date -d @1494170842
20170507日 星期日 11:27:22 EDT

恢复gitlab

# 停止数据写入服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

# 进行恢复
# 下面的时间戳就是刚刚备份的文件前面的时间戳
gitlab-rake gitlab:backup:restore BACKUP=1494170842  

# 重启
gitlab-ctl restart

服务器修改过ssh端口的坑(需要修改配置ssh端口)
# 如修改了ssh端口,则需在gitlab中配置ssh地址
# gitlab会在前面加上协议头和端口号"ssh://git@gitlab.domain.com:55725/huangdc/test.git"

vim /etc/gitlab/gitlab.rb
gitlab_rails['gitlab_shell_ssh_port'] = 55725
#使配置生效
gitlab-ctl reconfigure
#重新启动GitLab 
gitlab-ctl restart
 

 

第一次登录需要修改root密码, 密码8位以上,修改完就可以登录

 

GitLab初始界面

 

 

 

 

 

 

 

 

 GitLab基本操作

添加用户2种方式: root后台添加自己注册

方式1

方式1
方式2

方式2

用户权限

enter description here
Regular: 可以访问自己组和项目
Admin: 可以访问所有组和项目

添加组

enter description here

组权限

enter description here
Private: 私用,只允许组成员可见
Internal: 内部,所有登录用户可见
Public: 公共,所有人可见

创建仓库和添加成员到组,很简单,不再赘述. 重点说下仓库成员权限,

enter description here
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

默认Developer角色不能push到master, master分支受保护;可以修改如下:

enter description here

测试发邮件

copygitlab-rails console
irb(main):003:0> Notify.test_email('邮箱', 'Message Subject', 'Message Body').deliver_now
posted @   星尘yuan  阅读(477)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示