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 ****
相关推荐
丁总学Java1 小时前
git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表
git
cominglately2 小时前
centos单机部署seata
linux·运维·centos
CircleMouse2 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
Karoku0662 小时前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes
木子Linux3 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.8243 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
watermelonoops3 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
阿甘知识库3 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
saynaihe4 小时前
安全地使用 Docker 和 Systemctl 部署 Kafka 的综合指南
运维·安全·docker·容器·kafka
yylの博客4 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh