gitlabs离线安装
目录
〇、说明
1. 因为是安装完后,过了很久才整理的当时安装记录,参考博客链接找不到了,这里未能给出
2. 安装环境是 Centos,另外邮件部分因为是内网,步骤是否正确没有去实践过
一、环境配置
(环境依赖包安装[影响gitlab的某些功能使用]和防火墙配置)
- 安装sshd
yum install -y curl policycoreutils-python openssh-server
systemctl enable sshd # 开机启动sshd
systemctl start sshd # 启动sshd
- 配置防火墙:采用命令开启防火墙(非必须)
systemctl enable firewalld # 开机自动启动防火墙
systemctl start firewalld # 开启防火墙
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
- 安装postfix(非必须)
- GitLab 需要使用 postfix 来发送邮件,安装命令如下
yum install -y postfix
- 打开 /etc/postfix/main.cf 文件,在第 119 行附近找到 inet_protocols = all,将 all 改为 ipv4 并按 Ctrl + S 保存
inet_protocols = ipv4
- 启用并启动 postfix
systemctl enable postfix
systemctl start postfix
二、下载需求版本的rpm包,并传送到服务器
- 安装gitlab
- 从清华源下载rpm包:
- cd到rpm存放目录
- 安装rpm包
rpm -ivh 包名.rpm
三、gitlab预配置:域名,邮件配置
- 编辑配置文件
/etc/gitlab/gitlab.rb
vim /etc/gitlab/gitlab.rb
- 配置http协议所使用的访问地址
nginx['listen_port'] = 4321
external_url 'http://10.33.123.54:4321' # 若写域名,就是用域名访问
- 配置ssh协议所使用的访问地址和端口
#设置拉取代码采取的地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.33.123.54'
gitlab_rails['gitlab_shell_ssh_port'] = 4322
- 修改邮件配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
#说明用的邮箱是QQ企业邮箱
gitlab_rails['smtp_port'] = 465 #采用465端口,登录发信邮箱查看设置
gitlab_rails['smtp_user_name'] = "ying@digital.com.cn"
gitlab_rails['smtp_password'] = "**********" #邮箱的密码或者授权码
gitlab_rails['smtp_domain'] = "exmail.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] =true
设置收信人,并且发件人和上面的账号要一致!!,不然会发信会报错,试过了!我还想实际邮箱和外在邮箱不一样。。。
gitlab_rails['gitlab_email_from'] = 'ying@digital.com.cn'
- 首次启动你的GitLab实例
sudo gitlab-ctl reconfigure
四、启动gitlab:
gitlab-ctl start
gitlab-ctl restart
gitlab-ctl tail # 查看日志;
gitlab-ctl status # 查看服务状态;
五、完全卸载删除gitlab
- 停止gitlab
gitlab-ctl stop
gitlab-ctl uninstall
- 卸载gitlab(注意这里写的是gitlab-ce)
rpm -e gitlab-ce
- 查看gitlab进程
ps aux | grep gitlab
- 强制杀掉第一个进程(就是带有好多………….的进程)
杀掉后,再用ps aux | grep gitlab确认一遍,还有没有gitlab的进程
kill -9 进程号
- 删除所有包含gitlab文件
find / -name gitlab | xargs rm -rf
六、gitlab 状态码502问题
- 一般可能原因,一个是因为端口占用,第二是要等待1分钟后再访问gitlab,端口原因见下方
- 编辑配置文件
vim /etc/gitlab/gitlab.rb
- 修改两个常见冲突端口号
external_url 'http://ip:8888'
unicorn['port'] = 8088
- 启动GitLab
gitlab-ctl reconfigure
gitlab-ctl restart
附
(一)、常用命令
gitlab-ctl start:启动全部服务
gitlab-ctl restart:重启全部服务
gitlab-ctl stop:停止全部服务
gitlab-ctl reconfigure:使配置文件生效(一般修改完主配置文件/etc/gitlab/gitlab.rb,需要执行此命令)
gitlab-ctl show-config :验证配置文件
gitlab-ctl uninstall:删除gitlab(保留数据)
gitlab-ctl cleanse:删除所有数据,从新开始
gitlab-ctl tail <service name>查看服务的日志
(二)、常用的组件
nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表,我们的gitlab是以Git做为最层的,你操作实际上最后就是调用gitlab-shell命令进行处理。
gitlab-workhorse:轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails应用是托管在这个服务器上面的
(三)、基础目录:
/var/opt/gitlab/git-data/repositories: # 库默认存储目录
/opt/gitlab: # 应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl
# reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab # 配置文件目录
/var/log/gitlab # 此目录下存放了gitlab各个组件产生的日志
/var/opt/gitlab/backups/ # 备份文件生成的目录