Gitlab安装
CentOS 7.6
1.添加阿里云镜像
yum install -y wget
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
yum -y update
2.安装依赖
yum install curl policycoreutils openssh-serveropenssh-clients
yum install curl policycoreutils policycoreutils-python openssh-server openssh-clients -y
yum install policycoreutils-python.x86_64
3.安装gitlab
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.10.1-ce.0.el7.x86_64.rpm
chmod 777 gitlab-ce-11.10.1-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-11.10.1-ce.0.el7.x86_64.rpm
4.配置gitlab
vi /etc/gitlab/gitlab.rb
external_url 'http://192.168.1.249:8989'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'web@sibionics.com'
gitlab_rails['gitlab_email_display_name'] = 'Admin'
gitlab_rails['gitlab_email_reply_to'] = 'web@sibionics.com'
gitlab_rails['gitlab_email_subject_suffix'] = '[gitlab]'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "web@sibionics.com"
gitlab_rails['smtp_password'] = "youpassword"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'web@sibionics.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"
5.开放端口
firewall-cmd --zone=public --list-ports #查看开放端口
firewall-cmd --zone=public --add-port=8989/tcp --permanent #开放8989端口
firewall-cmd --permanent --add-service=http
systemctl reload firewalld#刷新
6.重新加载配置和重启服务
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl status
相关操作说明
# 重新应用gitlab的配置,每次修改/etc/gitlab/gitlab.rb文件之后执行
sudo gitlab-ctl reconfigure
# 启动gitlab服务
sudo gitlab-ctl start
# 重启gitlab服务
sudo gitlab-ctl restart
# 查看gitlab运行状态
sudo gitlab-ctl status
#停止gitlab服务
sudo gitlab-ctl stop
# 查看gitlab运行所有日志
sudo gitlab-ctl tail
#查看 nginx 访问日志
sudo gitlab-ctl tail nginx/gitlab_acces.log
#查看 postgresql 日志
sudo gitlab-ctl tail postgresql
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
/etc/gitlab/gitlab.rb #gitlab配置文件
/opt/gitlab #gitlab的程序安装目录
/var/opt/gitlab #gitlab目录数据目录
/var/opt/gitlab/git-data #存放仓库数据
gitlab-ctl stop nginx #单独停止某个服务
gitlab-ctl tail #查看所有服务的日志
gitlab-rake gitlab:check #检查报错
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看gitlab安装版本
Gitlab的服务构成:
nginx: 静态web服务器
gitlab-workhorse 轻量级反向代理服务器
logrotate 日志文件管理工具
postgresql 数据库
redis 缓存数据库
sidekiq 用于在后台执行队列任务(异步执行)
Gitlab迁移
1.gitlab备份
gitlab-rake gitlab:backup:create
相关配置文件
/etc/gitlab/gitlab.rb #gitlab配置文件
/var/opt/gitlab/nginx/conf/* #nginx配置文件
/etc/postfix/main.cf #邮件配置文件
2.将备份文件传到新机器gitlab备份目录
scp root@192.168.1.249:/var/opt/gitlab/backups/1602357536_2021_12_31_11.10.1_gitlab_backup.tar /var/opt/gitlab/backups/
chmod 777 1602357536_2021_12_31_11.10.1_gitlab_backup.tar
3.停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
4.冲备份文件中恢复
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
输入两次yes
gitlab-ctl start
5.重新加载gitlab配置和启动gitlab所有服务
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl status
6.gitlab的管理中心的runner不能打开,显示500
gitlab-rails console # 进入console
ApplicationSetting.current.reset_runners_registration_token! # 重置token
exit # 退出
7.邮件测试
gitlab-rails console
Notify.test_email('test@126.com','test','test').deliver_now
Gitlab升级
1.下载安装包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.10.8-ce.0.el7.x86_64.rpm
2.升级gitlab
rpm -Uvh gitlab-ce-11.10.8-ce.0.el7.x86_64.rpm
3.查看gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
4.重新加载配置,启动服务
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl status
Gitlab汉化
1.找到对用版本的中文汉化补丁(不同版本安装后可能会出现报错)
wget https://gitlab.com/xhang/gitlab/-/archive/11-10-stable-zh/gitlab-11-10-stable-zh.tar.gz
cp gitlab-11-10-stable-zh.tar.gz /home
gitlab-11-10-stable-zh需要11.10.8版本对应
2.解压汉化补丁
tar -zxvf gitlab-11-10-stable-zh.tar.gz
3.备份即将汉化目录
cp -rp /opt/gitlab/embedded/service/gitlab-rails{,.bak_$(date +%F)}
4.将解压的汉化补丁覆盖改目录
gitlab-ctl stop
unalias cp #取消掉cp的别名设置,-rf强制覆盖文件
cp -rf gitlab-11-10-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
5.重新加载配置,启动服务
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl status