一、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 ****