GitLab安装教程
配置:建议CPU2核,内存2G以上。
1.1 GitLab主要服务构成
Nginx静态Web服务器
Gitlab-workhorse 轻量级的反向代理服务器
Gitlab-shell 用于处理Git命令和修改authorized keys列表
Logrotate 日志文件管理工具
Postgresql数据库
Redis 缓存服务器
1.2 GitLab的工作流程
创建并克隆项目
创建项目某Feature分支
编写代码并提交至该分支
推送改项目分支至远程Gitlab服务器
进行代码检查并提交Master主分支合并申请
项目领导审查代码并确认合并申请
2.安装
2.1安装ssh
sudo yum install -y curl policycoreutils-pythonopenssh-server
2.2将ssh服务设置成开机启动
sudo systemctl enable sshd
2.3安装Postfix以发送邮件通知
sudo yum install postfix
设置开机启动
sudo systemctl start postfix
如果启动不了就改一下
修改 /etc/postfix/main.cf文件中的
inet_interfaces = localhost
inet_protocols = all
修改为:
inet_interfaces = all
inet_protocols = all
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
2.4wget用于外网下载插件
检查系统中是否已经安装wget,使用命令若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装
wget -V
查看是否存在版本信息,如果没有则安装
yum -y install wget
2.5配置域名
vi /var/opt/gitlab/nginx/conf/gitlab-http.conf
补充说明:因为编译gitlab的配置 /etc/gitlab/gitlab.rb 时会重新生成这个自定义nginx 配置,所以只要 gitlab 的配置配得好,上面的nginx其实不需要自定义的。
也可以修改/etc/gitlab/gitlab.rb文件配置端口号
vi /etc/gitlab/gitlab.rb
找到external_url -> 服务器http://IP:端口 ( vi输入命令 /external_url )
2.6添加gitlab镜像
//查看el7还是e16
uname -a
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/“自己需要的版本”
2.7安装gitlab
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
全部ok才行
2.8修改gitlab配置文件指定服务器IP和自定义端口
vi /etc/gitlab/gitlab.rb
修改服务器IP(跟2.3配置的ip端口一致)
external_url ‘http://gitlab.test.domain.com:8088’
执行配置
gitlab-ctl reconfigure
启动
gitlab-ctl start
出现如下说明成功(全部run 不报错)
一般timeout重启可解决 如果没解决需要根据各个服务而解决
一般是解决方法:
1、按住CTRL+C强制结束
2、先停止gitlab,命令:sudo gitlab-ctl stop
3、执行命令:sudo chmod755 /var/opt/gitlab/postgresql
4、执行命令:sudo systemctl restart gitlab-runsvdir
5、再次配置:sudo gitlab-ctl reconfigure
6、启动即可:sudo gitlab-ctl restart
还不行直接重装快一点
修改储存位置(看你自己要不要改)
sudo vi /etc/gitlab/gitlab.rb
git_data_dirs -> 修改成目标位置
配置执行
sudo gitlab-ctl reconfigure
2.9重启gitlab并访问
如果访问失败先检查服务是否有问题,在检查防火墙是否开启或者端口限制
//关闭防火墙
firewall-cmd –state
systemctl stop firewalld.service
//开机关闭防火墙
systemctl disable firewalld
//开机自启防火墙
systemctl enable firewalld
gitlab-ctl restart
gitlab常用命令
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
vim /etc/gitlab/gitlab.rb # 修改gitlab配置文件;
gitlab-ctl reconfigure # 重新编译gitlab的配置;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
gitlab-ctl tail # 查看日志;
gitlab-ctl tail nginx/gitlab_access.log
查看gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
访问gitlab页面
image-20210926101624319
2.10安全考虑,需要创建public key认证
创建命令
ssh-keygen
一直回车
复制id_rsa.pub公钥
cat .ssh/id_rsa.pub
将cat出来的所有内容公钥添加到gitlab中
3、配置邮箱信息
sudo vi /etc/gitlab/gitlab.rb
修改如下配置:
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.sina.com”
gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_user_name’] = “@sina.com"
gitlab_rails[‘smtp_password’] = "”
gitlab_rails[‘smtp_domain’] = “sina.com”
gitlab_rails[‘smtp_authentication’] = “login”
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘smtp_tls’] = true
gitlab_rails[‘gitlab_email_from’] = “****@sina.com”
user[‘git_user_email’] = “*****@sina.com”
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rails console
Notify.test_email(‘@***.com’,‘email title’,‘email content desc’).deliver_now
收到邮件证明成功