Gitlab 社区版13.6.1在系统Centos7中安装和使用
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
GitLab Shell有两个作用:为GitLab处理Git命令、修改authorized keys列表
当通过SSH访问GitLab Server时,GitLab Shell会:
当通过http(s)访问GitLab Server时,工作流程取决于你是从Git仓库拉取(pull)代码还是向git仓库推送(push)代码:
如果是从Git仓库拉取(pull)代码,GitLab Rails应用会全权负责处理用户鉴权和执行Git命令的工作
如果是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:
GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。
将对应版本的gitlab-ce下载到本地后,直接yum安装即可
# 要先将这个rpm包下载到本地
yum install -y gitlab-ce-13.6.1-ce.0.el7.x86_64.rpm
在 /etc/yum.repos.d/ 下新建 gitlab-ce.repo,写入如下内容:
[gitlab-ce] name=gitlab-ce baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ Repo_gpgcheck=0 Enabled=1 Gpgkey=https://packages.gitlab.com/gpg.key
yum makecache # 这一步会创建大量的数据 # 直接安装最新版 yum install -y gitlab-ce # 如果要安装指定的版本,在后面填上版本号即可 yum install -y gitlab-ce-13.6.1 # 如果安装时出现gpgkey验证错误,只需在安装时明确指明不进行gpgkey验证 yum install gitlab-ce -y --nogpgcheck
配置文件位置 /etc/gitlab/gitlab.rb
[root@centos7 test]# vim /etc/gitlab/gitlab.rb [root@centos7 test]# grep "^[a-Z]" /etc/gitlab/gitlab.rb external_url ‘http://10.0.0.51‘ # 这里一定要加上http:// # 配置邮件服务 gitlab_rails[‘smtp_enable‘] = true gitlab_rails[‘smtp_address‘] = "smtp.qq.com" gitlab_rails[‘smtp_port‘] = 25 gitlab_rails[‘smtp_user_name‘] = "xiaohao@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‘] = "xiaohao@qq.com" # 指定发送邮件的邮箱地址 user["git_user_email"] = "123456@qq.com" # 指定接收邮件的邮箱地址
修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效。
gitlab-ctl reconfigure # 重载配置文件
gitlab-ctl start # 启动所有 gitlab 组件 gitlab-ctl stop # 停止所有 gitlab 组件 gitlab-ctl restart # 重启所有 gitlab 组件 gitlab-ctl status # 查看服务状态 gitlab-ctl reconfigure # 启动服务 gitlab-ctl show-config # 验证配置文件 gitlab-ctl tail # 查看日志 gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab vim /etc/gitlab/gitlab.rb # 修改默认的配置文件
# 将app01项目克隆下来 git clone git@10.0.0.51:java/app01.git # 初始化配置 git config --global user.name "hgzero" git config --global user.email "hgzero@qq.com" # 在app01目录下新建一些文件 # 推送到gitlab git add . git commit -m "first edition" git push origin master
# 1. 先从仓库把项目拉下来 git clone git@10.0.0.51:java/app01.git cd app01/ # 2.先创建一个自己的分支,然后进行开发 git checkout -b index # 创建一个叫index的分支,并切换到这个分支 git status # 3. 开始开发首页 echo "<h1>welcome to this app</h1>" > index.html # 假设就开发了一个index页面 # 4. 开发完成后,把项目传到仓库 git add . git commit -m "index" # 如果写成 git commit -m "close #2" ,则表示merge请求允许且merge成功之后,自动删除编号为#2的issue # 传到index分支 git push origin index
1)开发dev1发送合并分支请求给pm
git checkout master # 切换到master
git pull # 从远端仓库拉取数据# 然后再进行其他操作
# 备份保存的位置,这里是默认位置,可修改成指定的位置 gitlab_rails[‘backup_path‘] = "/var/opt/gitlab/backups" # 设置备份保存的时间,超过此时间的日志将会被新覆盖 gitlab_rails[‘backup_keep_time‘] = 604800 # 这里是默认设置,保存7天 # 特别注意: # 如果自定义了备份保存位置,则要修改备份目录的权限,比如: # chown -R git.git /data/backup/gitlab
# 重读配置文件 gitlab-ctl reconfigure # 重启gitlab gitlab-ctl restart
# 每天凌晨2点定时创建备份 # 将一下内容写入到定时任务中 crontab -e 0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create # 备份策略建议: # 本地保留3到7天,在异地备份永久保存
# 备份后的文件类似这样的形式:1494170842_gitlab_backup.tar,可以根据前面的时间戳确认备份生成的时间
data -d @1494170842
# 停止数据写入服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
# 进行恢复 gitlab-rake gitlab:backup:restore BACKUP=1494170842 # 这个时间戳就是刚刚备份的文件前面的时间戳 # 重启 gitlab-ctl restart
gitlab_rails[‘time_zone‘] = ‘Asia/Shanghai‘ gitlab_rails[‘gitlab_email_enabled‘] = true gitlab_rails[‘gitlab_email_from‘] = ‘example@163.com‘ # 填写发件人的邮箱地址 gitlab_rails[‘gitlab_email_display_name‘] = ‘gitlab‘ gitlab_rails[‘smtp_enable‘] = true gitlab_rails[‘smtp_address‘] = "smtp.163.com" # smtp服务器的地址,如网易的地址 gitlab_rails[‘smtp_port‘] = 25 # 要注意如果使用了SSL/TLS的话,端口可能不是25 gitlab_rails[‘smtp_user_name‘] = "smtp用户名" gitlab_rails[‘smtp_password‘] = "smtp用户密码" gitlab_rails[‘smtp_domain‘] = "163.com" gitlab_rails[‘smtp_authentication‘] = "login"
2)添加“用户信息”
3)进行提交
注释也可以写成 close #3 ,作用是提交完成后关闭3号issue
然后就可以在gitlab上进行发送merge请求了,后面就可以进行其他操作了
3)删除无用分支
Gitlab 社区版13.6.1在系统Centos7中安装和使用
原文:https://www.cnblogs.com/haolb123/p/14949593.html