Gitlab部署

gitlab基础操作指令

gitlab-ctl start/stop  		# 开启/关闭gitlab

gitlab-ctl start/stop 组件名 	# 开启/关闭某组件

gitlab-ctl tail			# 查看gitlab日志

gitlab-ctl tail 组件名		# 查看gitlab某组件日志

gitlab-ctl reconfigure  		# 修改完配置文件之后必须执行,类似重启服务

gitlab-ctl status  		# 查看gitlab的状态

GItlab部署

# 清华大学开源软件镜像站
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/

# 安装依赖
yum -y install policycoreutils openssh-server openssh-clients postfix

# 解压gitlab包
rpm -ivh gitlab-ce-12.10.0-ce.0.el8.x86_64.rpm

# 修改gitlab配置文件指定服务器ip和自定义端口:
vim  /etc/gitlab/gitlab.rb
external_url 'http://localhost' // http://服务器IP:端口

# 重新编译配置文件并启动
gitlab-ctl reconfigure  #第一次时间比较长
gitlab-ctl start  #启动gitlab

# 默认端口80,也可以自定义端口,直接访问IP加端口即可
(默认用户:root,初次登录8位密码)

Gitlab邮件报警系统

vim /etc/gitlab/gitlab.rb 
gitlab_rails['gitlab_email_from'] = '2628059286@qq.com' 	#配置gitlab的配置的发信人
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"    		# 发送邮箱的smtp地址
gitlab_rails['smtp_port'] = 25     			# smtp端口号
gitlab_rails['smtp_user_name'] = "2628059286@qq.com" 	# 本人邮箱地址
gitlab_rails['smtp_password'] = " "    			# 邮箱授权码,获取授权码方式自行百度
gitlab_rails['smtp_domain'] = "qq.com"  			# gamil的域名
gitlab_rails['smtp_authentication'] = "login"  		#开启日志记录
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false   			# 邮件安全加密

# 重启gitlab
gitlab-ctl recofnigure 
gitlab-ctl restart  

# 测试邮件配置
gitlab-rails console #进入gitlab的shell环境,有点吗,慢
irb(main):001:0> Notify.test_email('2628059286@qq.com','test','test').deliver_now

Gitlab修改端口

# 修改默认端口80,8080
vim /etc/gitlab/gitlab.rb
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8082  #默认是8080
nginx['listen_addresses'] = ['*', '[::]']
nginx['listen_port'] = 80  #默认是80

vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb (这个会随上面修改)
listen "127.0.0.1:8082", :tcp_nopush => true

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
  listen *:80;

# 重启配置
gitlab-ctl reconfigure 
gitlab-ctl restart 

Gitlab数据备份恢复

# 备份所有数据
gitlab-rake gitlab:backup:create   # 创建备份
/var/opt/gitlab/backups/  # 备份数据的存放目录

# 恢复数据
gitlab-ctl stop unicorn   # 停止托管功能
gitlab-ctl stop sidekiq   # 停止消息队列功能


# 为了防止数据紊乱
gitlab-rake gitlab:backup:restore \
BACKUP=/var/opt/gitlab/backups/1583575461_2020_03_07_12.3.0


# 恢复时会先将数据全部清除,在恢复数据
# 成功后将停止的组件重新启动
gitlab-ctl start unicorn
gitlab-ctl start sidekiq

# 管理员忘记用户密码
gitlab-rails console
irb(main):001:0> user = User.where(id:1).first  # 用户id
=> #<User id:1 @root>
irb(main):002:0> user.password='12345678'
=> "12345678"
irb(main):003:0> user.save
irb(main):004:0> exit