目录
gitlab安装
# 安装gitlab服务所需依赖包
yum install -y curl postfix policycoreutils-python openssh-server wget
# 下载gitlab服务、安装gitlab服务
在清华源下载gitlab包,地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ # 根据系统发行版、版本选择,本例使用11.11.8版本的gitlab社区版(gitlab-ce)
yum install -y localinstall gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
# 配置gitlab服务、访问域名以及邮箱
vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.clobotics.com'
#初始化gitlab服务、启动gitlab服务
gitlab-ctl reconfigure # 初始化
gitlab-ctl start
# 访问gitlab服务、以及gitlab邮箱测试
# 配置域名
vim /etc/hosts
192.168.1.4 gitlab.clobotics.com
# 配置邮箱
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '1101172195@qq.com' # 发件邮箱
gitlab_rails['gitlab_email_display_name'] = 'Clobotics' # 发件人显示名称
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.qq.com'
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = '1101172195@qq.com' # 发件人邮箱账户
gitlab_rails['smtp_password'] = 'kgelouzhdqfwifdc' # 发件人邮箱客户端授权码
gitlab_rails['smtp_domain'] = 'qq.com'
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
# user['git_user_email'] = '1101172195@qq.com'
# 登录qq邮箱:"设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务",开启:
POP3/SMTP服务
IMAP/SMTP服务
Exchange服务
并获取授权码,添加到/etc/gitlab/gitlab.rb的 gitlab_rails['smtp_password']
其它命令:
gitlab-ctl status # 查看启动的进程
gitlab-ctl start
gitlab-ctl restart
gitlab-ctl stop
汉化(测试此版本的汉化与11.11.8版本的gitlab结合有点问题)
https://gitlab.com/xhang/gitlab
git clone -b 12-3-stable-zh https://gitlab.com/xhang/gitlab.git
cat /gitlab/VERSION
# 停止gitlab,进行中文汉化
# 停止gitlab服务
gitlab-ctl stop
中文版覆盖英文版
cp -r gitlab/* /opt/gitlab/embedded/service/gitlab-rails/ # 出现log、tmp目录存在的错误可以忽略
# 启动gitlab,验证汉化结果
gitlab-ctl start
#如果有新成员需要加入该项目该怎么办?
1.先给新成员创建用户;
2.将成员加入组,此时该用户就能看到对应的项目;
3.添加公钥,然后使用git clone测试是否能拉取代码;
4.最后更新内容,测试能否进行任务提交。
gitlab数据备份和恢复、迁移和升级
1.停止gitlab数据服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2.手动备份数据(备份的是gitlab中的项目)
vim /etc/gitlab/gitlab.rb
gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" # 默认备份的路径
gitlab_rails['backup_path'] = /data/gitlab/backups
gitlab_rails['backup_keep_time'] = 604800 # 默认的备份保留时间
gitlab-ctl reconfigure
# 手动执行备份命令,会将备份的结果存至/data/gitlab/backups
gitlab-rake gitlab:backup:create # 在任意目录即可备份当前gitlab数据
gitlab-ctl start # 备份完成后启动gitlab
数据被备份的位置: /var/opt/gitlab/backups/
# 设定一个定时任务,每天晚上的凌晨00:00备份
crontab -e
00 02 * * * gitlab-rake gitlab:backup:create &>/dev/null
3.gitlab恢复数据
/var/opt/gitlab/backups/ # gitlab数据备份目录
/var/opt/gitlab/nginx/conf # nginx配置文件
/etc/gitlab/gitlab.rb # gitlab配置文件
/etc/gitlab/gitlab-secrets.json # key文件
1.停止数据写入服务:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2.通过gitlab-rake命令进行恢复,恢复时需要指定此前备份的名称。(但不需要些名称的.tar后缀):
gitlab-rake gitlab:backup:restore BACKUP=1632798432_2021_09_28_11.11.8
3.为了保险起见,重启gitlab,检测是否恢复。
gitlab-ctl start
4.gitlab迁移
迁移如同备份与恢复的步骤一样,只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没有修改过默认备份目录的话)。
但是需要注意的是新服务器上的gitlab的版本必须与创建备份时的gitlab版本号相同。比如新服务器安装的是最新的10.8.3版本的gitlab,那么迁移之前,最好将老服务器的gitlab升级为10.8.3,基于最新版本的状态在进行备份。
/etc/gitlab/gitlab.rb gitlab配置文件须迁移,迁移后需要调整数据存放目录
/var/opt/gitlab/nginx/conf nginx配置文件目录须迁移
# 将旧机器上的备份文件同步过来后的操作步骤
gitlab-ctl stop unicorn
gitlab-ctl stop sidekip
chmod 777 /var/opt/gitlab/backups/1632798432_2021_09_28_11.11.8_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1632798432_2021_09_28_11.11.8
5.gitlab升级
1.关闭gitlab服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
2.备份gitlab
gitlab-rake gitlab gitlab:backup:create
3.下载gitlab的RPM包并进行升级
# 直接安装高版本
yum install -y gitlab-ce-version-0.el7.x86_64
# 报错
Error executing action `run` on reesource 'ruby_block[directory resource:/var/opt/gitlab/git-data/repositories]'
# 解决办法:
chmod 2770 /var/opt/gitlab/git-data/repositories
4.启动并检查gitlab版本查看
gitlab-ctl reconfigure
gitlab-ctl restart
head -1 /opt/gitlab/version-manifest.txt
gitlab更改默认nginx
更换gitlab
自带Nginx
, 使用自行安装的Nginx
来管理gitlab
服务。
1.编辑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服务
gitlab-ctl reconfigure
systemctl start nginx
访问报502。原因是nginx用户无法访问gitlab用户的socket文件。
重启gitlab需要重新授权
chmod -R o+x /var/opt/gitlab/gitlab-rails