当前位置: 首页 > article >正文

gitlab使用

一、gitlab的搭建

  一)gitlab安装部署、升级

  gitlab安装部署、备份升级:https://www.cnblogs.com/straycats/p/7707359.html

  二)gitlab软件目录结构(yum安装)

  1、主要的四个目录
1 /opt/gitlab/ ## 主目录 
2 /etc/gitlab/ ## 放置配置文件 
3 /var/opt/gitlab/ ## 各个组件 
4 /var/log/gitlab/ ## 放置日志文件

  yum安装的默认关键目录

#gitlab组和项目的地址
/var/opt/gitlab/git-data/repositories
##数据库的地址
/var/opt/gitlab/postgresql/data
  2、gitlab组件
1 nginx: 
2 postgresql: 
3 redis: 
4 unicorn: 
5 sidekiq: 
6 logrotate:
  3、gitlab常用管理命令
1 检查gitlab各组件状态: gitlab-ctl status
2 重启gitlab: gitlab-ctl restart
3 只重启某个组件: gitlab-ctl restart nginx

  三)gitlab的项目空间

1 实际在公司使用git项目的时候,项目可以Group来区分(群组),如支付可以新建一个群组 pay,订单为order 
2 项目按Group聚合,Group名和项目名尽量用中横线而不是下横线 
3 项目根目录的docs目录下放置项目文档 
4 如果项目文档很多且跨域多个子系统可以把docs独立为一个项目, 文档项目命名遵循约定: XXX-docs; 
5 基于Maven拆分的同一系统的多个强内聚的子系统, 如order-api和order-impl, 可放置于同一Group下的同一项目中, 而order-admin则应在同一Group下另开项目为上; 
6 项目的根目录必须包含.gitignore文件, 定义需要排除提交的数据, 例如:日志、编译后文件、IDE特定配置文件等;

二、gitlab的配置优化

  一)gitlab配置域名(访问地址)

  编辑gitlab的配置文件:/etc/gitlab/gitlab.rb

编辑:external_url '你的网址'
例如:external_url 'http://192.168.1.100'
编辑完成后,再sudo gitlab-ctl reconfigure一下,使配置生效

  二)gitlab web登入密码忘记以后可以用如下方式修改密码

  1、更改密码
# gitlab-rails console production
Loading production environment (Rails 4.2.8)
irb(main):001:0> user = User.where(id:1).first //id为1的是超级管理员
irb(main):002:0>user.password = 'yourpassword' //密码必须至少8个字符
irb(main):003:0>user.save! // 如没有问题 返回true
  2、重启验证
# gitlab-ctl restart
密码修改完成,去登陆吧

   三)gitlab备份、恢复

  gitlab9.4.5备份恢复:https://www.cnblogs.com/kevingrace/p/7821529.html

  1、创建仓库路径和备份路径
mkdir -p /data/gitlab/{backups,git-data}
   2、修改默认配置

  编辑文件/etc/gitlab/gitlab.rb 

    1、更改默认的存储的地址
git_data_dirs({"default" => "/var/opt/gitlab/git-data"})
    2、修改gitlab默认的备份目录
默认的地址如下 238 # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

修改之后的目录如下:
gitlab_rails['backup_path'] = '/mnt/backups'
    3、修改默认的保存的备份数

  以天为单位进行备份,默认保存7天的,软件以秒为单位

gitlab_rails['backup_keep_time'] = 604800

  修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可

  2、Gitlab 创建备份

  使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份:

  创建完整的备份

gitlab-rake gitlab:backup:create

  注意:

  1、gitlab9.x版本之前:使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期。(只有一个文件)

  2、gitlab9.x版本之后:备份文件1498352031_2017_06_25_9.2.7_gitlab_backup.tar,其他的目录会单独备份

    1498352031_2017_06_25_9.2.7_gitlab_backup.tar artifacts.tar.gz backup_information.yml builds.tar.gz db lfs.tar.gz pages.tar.gz repositories uploads.tar.gz

  3、脚本实现自动备份,保留指定的数量

  脚本如下

/server/scripts/auto_gitlab_bak.sh

#!/bin/bash
Git_bak_path=/data/gitlab/backups
Day=1
cd ${Git_bak_path}
gitlab-rake gitlab:backup:create CRON=1
find ${Git_bak_path} -name "*.tar" -mtime +${Day} -type f -exec rm -rf {}  ##这个可以通过更改配置文件实现gitlab_rails['backup_keep_time'] = 604800

  将脚本执行写入定时任务

0 2 * * * /bin/bash /server/scripts/auto_gitlab_bak.sh >/dev/null 2&1

三、gitlab的使用

  一)gitlab web页面使用入门

  Gitlab的管理使用手册:https://www.tuicool.com/articles/eqMVVb

一、新建项目
二、创建用户
三、重置用户密码
四、删除用户
五、赋予用户项目权限
六、取消用户项目权限

  二)GitLab如何屏蔽掉注册功能:

  https://blog.csdn.net/ouyang_peng/article/details/78562125

  三)ssh服务在修改了端口的情况下,怎么git clone 代码

  今天在用git clone下载代码里,说端口拒绝访问,问了一下管理服务器的同事,才知道ssh服务器的端口已经改成了8120,不想使用http方式下载,怎么办?

   1、解决方法一:更改命令

  其实很简单,原来的clone命令是这样的:git clone git@XXX.com:username/resources.git
  只需要把这个命令改成:git clone ssh://git@XXX.com:8120/username/resources.git

    1、注意是三个地方改动
1、增加了ssh://
2、增加了端口号
3、把用户名前面的冒号改成了斜杠(/)
  2、解决办法二:添加配置文件

  如是以域名访问的则添加如下内容:(注意修改xxx为你的远程仓库的名称)

  在操作用户的家目录创建文件:如果该路径下没有config文件,则创建一个。文件内容如下

    1、域名访问
Host xxx
HostName xxx.com
Port 55555
    2、IP访问
如是以ip访问的,则添加如下内容:(注意修改ip为你的远程仓库ip)
Host "10.0.xx.xxx"
Port 55555
    3、如果 git 是 ssh 方式免密认证方式登录的话,且你的私钥文件名字不是 id_rsa,则还需要在 config 文件中填加:
IdentityFile ~/.ssh/<你的密钥名>
     4、config中还可以指定User,如 
User "git"

 四)gitlab更改默认Nginx

  1、更换gitlab自带Nginx,使用自行编译Nginx来管理gitlab服务。

  编辑gitlab配置文件禁用自带Nignx服务器

vi /etc/gitlab/gitlab.rb
...
#设置nginx为false,关闭自带Nginx
nginx['enable'] = false
...
  2、检查默认nginx配置文件,并迁移至新Nginx服务
/var/opt/gitlab/nginx/conf/nginx.conf          #nginx配置文件,包含gitlab-http.conf文件
/var/opt/gitlab/nginx/conf/gitlab-http.conf    #gitlab核心nginx配置文件
  3、重启 nginx、gitlab服务
$ sudo gitlab-ctl reconfigure
$ sudo service nginx restart

  访问报502。原因是nginx用户无法访问gitlab用户的socket文件。 重启gitlab需要重新授权

chmod -R o+x /var/opt/gitlab/gitlab-rails

  五)gitlab web登入密码忘记以后可以用如下方式修改密码

[root@gitlab_jenkins tmp]# gitlab-rails console production
Loading production environment (Rails 4.2.8)
irb(main):001:0> user = User.where(id:1).first //id为1的是超级管理员
irb(main):002:0>user.password = 'yourpassword' //密码必须至少8个字符
irb(main):003:0>user.save! // 如没有问题 返回true
# gitlab-ctl restart
密码修改完成,去登陆吧

四、gitlab升级

   一)9.x之前的升级

  1、关闭gitlab服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
  2、备份gitlab
gitlab-rake gitlab:backup:create
  3、下载gitlab的RPM包并进行升级
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum update gitlab-ce
或者直接安装高版本
yum install gitlab-ce-8.12.13-ce.0.el7.x86_64
或者上官网下载最新版本 gitlab对应软件包  [gitlab官网](https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.12.13-ce.0.el7.x86_64.rpm)
使用 rpm -Uvh gitlab-ce-8.12.13-ce.0.el7.x86_64
  4、报错解决如下
报错.
Error executing action `run` on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]'
解决方法:
sudo chmod 2770 /var/opt/gitlab/git-data/repositories
  5、启动并查看gitlab版本信息
gitlab-ctl reconfigure
gitlab-ctl restart
# head -1 /opt/gitlab/version-manifest.txt
gitlab-ce ****


http://www.kler.cn/a/287278.html

相关文章:

  • Linux网络——套接字编程
  • C++ 并发专题 - 线程安全的单例模式
  • elasticsearch是如何实现master选举的?
  • 【C/C++】Lambda 用法
  • PHP 表单 - 必需字段
  • Spark分布式计算中Shuffle Read 和 Shuffle Write的职责和区别
  • easyPOI生成的excel添加水印
  • Spark MLlib模型训练—分类算法Multinomial Logistic Regression
  • 【生活英语】2、喜欢与讨厌
  • 四足机器人控制算法——建模、控制与实践(unitree_guide配置)
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • FreeRTOS中任务通知的使用
  • 两句话解决ChatGPT 502 Bad Gateway问题
  • 前后端分离项目遇到的跨域问题解决方案(后端为主)
  • uniapp按钮点击过快导致请求数据混乱
  • 【学习笔记】卫星通信NTN 3GPP标准化进展分析(五)- 3GPP Release19 研究计划
  • 一图打尽C++内存分区(分段)
  • 内核开发具有哪些特点?大致流程是怎样的?
  • <C++> 红黑树
  • golang make 函数的三个参数分别有什么作用
  • 峟思大坝安全监测系统:科技筑牢工程稳定的基石
  • TCP ISO/OSI模型
  • 开启ROS 2中的geometry坐标模拟展示
  • SQLi-LABS靶场56-60通过攻略
  • [Python]之深拷贝与浅拷贝
  • Flask之Hello world 详解