GitHub(国外)和Gitee(国内)都是第三方托管平台,不能本地部署,使用简单,可以快速建立管理项目,且无需对其进行服务器维护,但代码保密性不高。
Gitlab是开源管理软件,提供web界面,方便管理git仓库,企业一般搭建自己的gitlab服务器,保证代码的安全性
官网:下载安装_极狐GitLab - 极狐GitLab 官方网站
1、安装相关依赖项
#安装相关依赖
sudo yum install -y curl policycoreutils openssh-server openssh-clients
#启动ssh服务、设置为开机自启动
sudo systemctl enable sshd
sudo systemctl start sshd
#安装postfix以发送邮件通知
sudo yum install -y postfix
#启动postfix服务、设置为开机自启动
sudo systemctl enable postfix
sudo systemctl start postfix
#开放http服务、重启防火墙
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
2、直接手动下载el/7版本的rpm包(下载地址:gitlab/gitlab-ee - Packages · packages.gitlab.com),下载完成后上传到服务器再执行安装命令
#下载Gitlab安装包
wget https://omnibus.gitlab.cn/el/7/gitlab-jh-14.7.1-jh.0.el7.x86_64.rpm
#安装命令
sudo rpm -Uvh gitlab-jh-14.7.1-jh.0.el7.x86_64.rpm
#或者
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo yum install gitlab-ee-14.7.2-ee.0.el7.x86_64
安装成功如下图所示:
3、修改Gitlab配置
vi /etc/gitlab/gitlab.rb
#修改以下内容:
external_url 'http://gitlab.example.com'
#更改 https://gitlab.example.com 为要访问极狐GitLab实例的URL
external_url 'http://ip'
#重新加载配置
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
#开放指定端口(注意80端口被占用)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
4、访问Gitlab
http://192.168.80.221/
登录:root、设置密码
#系统运行内存至少需要4G,否则无法访问Gitlab,显示502。其运行就占用了3G,可以通过命令查看:free -h
#重置管理员登录密码
su - git #切换用户
gitlab-rails console -e production #进入GitLab控制台
user = User.where(id: 1).first #查询gitlab超级管理员信息,超级管理员用户默认是1
user.password='12345678' #修改密码
user.save! #保存用户对象
exit #退出控制台
5、配置邮件服务
1、开启邮箱的 SMTP 服务
设置-->POP3/ smtp-->开启一下,开启后,返回授权码,保存好授权码
2、修改配置文件
vim /etc/gitlab/gitlab.rb #可以在89行后插入以下内容:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxx@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxxxx@qq.com'
#重新加载配置
sudo gitlab-ctl reconfigure
3、测试邮件是否发送成功
#进入控制台
gitlab-rails console
#发送邮件
irb(main):001:0> Notify.test_email('xxxx@qq.com', '邮件主题 Message Subject', '邮件正文Message Body').deliver_now
6、偏好设置
1、汉化:用户、Preferences、Localization、Language、简体中文、Save changes
2、关闭注册:菜单、管理员、通用、注册限制、展开
7、创建项目仓库
1、新建用户:菜单、管理员、用户、新用户(名称、用户名、电子邮件、Access level)、创建用户、编辑(密码)、保存修改
2、创建群组:菜单、群组、创建群组(群组名称、可见性级别、角色、使用群组)、创建群组
3、创建项目:选择群组、新建项目、创建空白项目(项目名称)、新建项目
4、群组添加用户:选择群组、群组信息、成员(GitLab成员或电子邮件地址、角色)、邀请
删除项目:选择项目、设置、高级、展开、删除项目
删除分支:选择项目、分支、选择分支、删除
8、设置公钥
#开发人员获取本地公钥(用户下的.ssh中的id_rsa.pub文件就是公钥)
ssh-keygen
#在仓库中设置公钥:菜单管理员、部署密钥、新建部署密钥(标题、键:公钥)、create