gitlab服务应用
  1. gitlab安装配置
  • 安装过程

yum install -y curl policycoreutils-python openssh-server cronie   #安装依赖

vim /etc/yum.repos.d/gitlab-ce.repo             #配置yum源

[gitlab-ce]

name=Gitlab CE Repository

baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/

gpgcheck=0

enabled=1

yum makecache                                   #更新本地yum缓存

yum install gitlab-ce                           #安装GitLab最新社区版

gitlab-ctl reconfigure                          #gitlab初始化

默认安装路径

/var/opt/gitlab/

至此,gitlab安装完毕

  • 故障恢复

1.系统资源不足

gitlab-ctl stop sidekiq

sidekiq与多线程启动相关,如果系统资源不足,可以关闭sidekiq来释放一部分内存

2.web页面出现502

其主要问题是系统资源不够用

unicorn[‘worker_timeout’] = 90                      #默认60s,可以增大超时时间

gitlab_rails[‘webhook_timeout’] = 90                #默认60s,可以增大超时时间

也可以执行如下命令进行检查

gitlab-rake gitlab:check SANITIZE=true –trace

  1. GitLab常用命令

gitlab-ctl start    # 启动所有 gitlab 组件;

gitlab-ctl stop        # 停止所有 gitlab 组件;

gitlab-ctl restart        # 重启所有 gitlab 组件;

gitlab-ctl status        # 查看服务状态;

gitlab-ctl reconfigure        # 启动服务;

vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;

gitlab-rake gitlab:check SANITIZE=true –trace    # 检查gitlab;

gitlab-ctl tail        # 查看日志;

  1. Gitlab备份恢复操作

备份

[root@centos6 ~]# vim /etc/gitlab/gitlab.rb                        #备份目录路径设置

gitlab_rails[‘manage_backup_path’] = true

gitlab_rails[‘backup_path’] = “/home/ekcpsd/gitlab/backups”

[root@centos6 ~]# gitlab-rake gitlab:backup:create                 #备份操作

[root@centos6 ~]# cd /home/ekcpsd/gitlab/backups/

[root@centos6 ~]# ls

1529636423_2018_06_22_10.8.4_gitlab_backup.tar

数据恢复

scp 1529636423_2018_06_22_10.8.4_gitlab_backup.tar 192.168.1.200:~     #传输备份文件

服务端操作

mv 1529636423_2018_06_22_10.8.4_gitlab_backup.tar /var/opt/gitlab/backups/

cd /var/opt/gitlab/backups/

[root@centos6 ~]# chown git:git 1529636423_2018_06_22_10.8.4_gitlab_backup.tar

[root@centos6 ~]# gitlab-ctl stop unicorn                    #相关数据连接服务

[root@centos6 ~]# gitlab-ctl stop sidekiq                    #相关数据连接服务

[root@centos6 ~]# gitlab-ctl status                          #查看状态

[root@centos6 ~]# gitlab-rake gitlab:backup:restore BACKUP=1529636423_2018_06_22_10.8.4

Restoring uploads …

tar: .: Cannot mkdir: No such file or directory       #出现错误可以忽略,直接登录查看

tar: Exiting with failure status due to previous errors

[root@centos6 ~]# gitlab-ctl start                          #再次启动Gitlab

[root@centos6 ~]# gitlab-rake gitlab:check SANITIZE=true    # check检查一下恢复情况

  1. 现有项目初始化
  • 添加客户端公钥

首先登陆web页面,首次登陆需要设置root用户的密码,然后登陆root用户添加gitlab客户端公钥

生成密钥对

[root@centos6 ~]# ssh-keygen -t dsa -P “” -f ~/.ssh/id_dsa     #创建密钥对

[root@centos6 ~]# cat .ssh/id_dsa.pub                          #查看公钥

添加公钥

 

  • 配置git

git config –global user.name “ekcr”                   #配置git使用用户

git config –global user.email “ekcr@moyi365.com”      #配置git使用邮箱

git config –global color.ui true                          #语法高亮

git config –list                                          # 查看全局配置

查看生成的配置文件

[root@gitlab ~]# cat .gitconfig

[user]

name = ekcr

email = ekcr@moyi365.com

[color]

ui = true

  • push现有项目

如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入

[root@centos6 ~]# cd /home/www/ekwing/

[root@centos6 ekwing]# git init

[root@centos6 ekwing]# ls .git/

branches  config  description  HEAD  hooks  info  objects  refs

[root@centos6 ekwing]# git add .

[root@centos6 ekwing]# git commit -m ‘initial project version’

[root@centos6 ekwing]# git remote add origin git@192.168.1.200:root/ekwing.git

[root@centos6 ekwing]# git push origin master

注意:可以不先创建工程

  1. 配置gitlab发邮件

[root@centos6 ~]# vim /etc/gitlab/gitlab.rb

gitlab_rails[‘time_zone’] = ‘Asia/Shanghai’

external_url ‘http://172.17.20.70’

gitlab_rails[‘gitlab_email_from’] = ‘service@moyi365.com’

gitlab_rails[‘gitlab_email_reply_to’] = ‘service@moyi365.com’

gitlab_rails[‘smtp_enable’] = true

gitlab_rails[‘smtp_address’] = “smtp.exmail.qq.com”

gitlab_rails[‘smtp_port’] = 465

gitlab_rails[‘smtp_user_name’] = “service@moyi365.com”

gitlab_rails[‘smtp_password’] = “M1oyiS2ervice6”

gitlab_rails[‘smtp_domain’] = “exmail.qq.com”

gitlab_rails[‘smtp_authentication’] = “login”

gitlab_rails[‘smtp_enable_starttls_auto’] = true

gitlab_rails[‘smtp_tls’] = true

user[‘git_user_email’] = “service@moyi365.com”

[root@centos6 ~]# gitlab-ctl reconfigure

命令行测试

[root@centos6 ~]# gitlab-rails console            #进入命令行

————————————————————————————-

Gitlab:       10.8.4 (2268d0c)

Gitlab Shell: 7.1.2

postgresql:   9.6.8

————————————————————————————-

Loading production environment (Rails 4.2.10)

irb(main):001:0> Notify.test_email(‘liwenbin@moyi365.com’, ‘Message Subject’, ‘Message Body’).deliver_now                                   #发邮件

 

Notify#test_email: processed outbound mail in 1359.1ms

 

Sent mail to liwenbin@moyi365.com (3223.5ms)

Date: Thu, 05 Jul 2018 16:54:04 +0800

From: GitLab <service@moyi365.com>

Reply-To: GitLab <service@moyi365.com>

To: liwenbin@moyi365.com

Message-ID: <5b3ddcac22de_1b4b3f8868fdb19853438@centos6.5.model.mail>

Subject: Message Subject

Mime-Version: 1.0

Content-Type: text/html;

charset=UTF-8

Content-Transfer-Encoding: 7bit

Auto-Submitted: auto-generated

X-Auto-Response-Suppress: All

 

<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN” “http://www.w3.org/TR/REC-html40/loose.dtd”>

<html><body><p>Message Body</p></body></html>

 

=> #<Mail::Message:69854712982680, Multipart: false, Headers: <Date: Thu, 05 Jul 2018 16:54:04 +0800>, <From: GitLab <service@moyi365.com>>, <Reply-To: GitLab <service@moyi365.com>>, <To: liwenbin@moyi365.com>, <Message-ID: <5b3ddcac22de_1b4b3f8868fdb19853438@centos6.5.model.mail>>, <Subject: Message Subject>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>

irb(main):002:0> quit

[root@centos6 ~]#

  1. gitlab忘记root密码

[root@centos6 ~]# gitlab-rails console production

————————————————————————————-

Gitlab:       10.8.3 (564c342)

Gitlab Shell: 7.1.2

postgresql:   9.6.8

————————————————————————————-

Loading production environment (Rails 4.2.10)

irb(main):001:0> user = User.where(id: 1).first

=> #<User id:1 @root>

irb(main):002:0> user.password=12345678

=> 12345678

irb(main):003:0> user.password_confirmation=12345678

=> 12345678

irb(main):004:0> user.save!

Enqueued ActionMailer::DeliveryJob (Job ID: 9f67d6af-a426-4352-8c4c-b8ef85c20c12) to Sidekiq(mailers) with arguments: “DeviseMailer”, “password_change”, “deliver_now”, gid://gitlab/User/1

=> true

irb(main):005:0> quit

注意:密码没有使用引号,奇怪的是使用单引号或双引号,密码就无效,估计是包含了这个字符,不包含,就没有问题。

  1. gitlab权限管理
  • 访问权限Visibility Level

这个是在建立项目时就需要选定的,主要用于决定哪些人可以访问此项目,包含3种

  • Private-私有,只有属于该项目成员才有原先查看
  • Internal-内部,用个Gitlab账号的人都可以clone
  • Public-公开,任何人可以clone
  • 行为权限

在满足行为权限之前,必须具备访问权限(如果没有访问权限,那就无所谓行为权限了),行为权限是指对该项目进行某些操作,比如提交、创建问题、创建新分支、删除分支、创建标签、删除标签等。

角色

Gitlab定义了以下几个角色:

  • Guest – 访客
  • Reporter – 报告者; 可以理解为测试员、产品经理等,一般负责提交issue等
  • Developer – 开发者; 负责开发
  • Master – 主人; 一般是组长,负责对Master分支进行维护
  • Owner – 拥有者; 一般是项目经理

权限

不同角色,拥有不同权限,下面列出Gitlab各角色权限

  1. 工程权限
行为 Guest Reporter Developer Master Owner
创建issue
留言评论
更新代码  
下载工程  
创建代码片段  
创建合并请求    
创建新分支    
提交代码到非保护分支    
强制提交到非保护分支    
移除非保护分支    
添加tag    
创建wiki    
管理issue处理者    
管理labels    
创建里程碑      
添加项目成员      
提交保护分支      
使能分支保护      
修改/移除tag      
编辑工程      
添加deploy keys      
配置hooks      
切换visibility level        
切换工程namespace        
移除工程        
强制提交保护分支        
移除保护分支        

PS: 关于保护分支的设置,可以进入Settings->Protected branches进行管理

  1. 组权限
行为 Guest Reporter Developer Master Owner
浏览组
编辑组        
创建子组        
组中创建项目      
管理组成员        
移除组        
管理组标签  
创建/编辑/删

除组里程碑

   
  1. 设置项目用户角色
  • 创建账号

登录root管理员账户,创建用户,如下图

 

  • 设置用户角色

如下图,具体角色权限详见上一节

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇