GitLab安装教程
GitLab安装教程
1.GitLab介绍
**GitLab:**是一个基于是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
**功能:**Gitlab是一个提供代码托管,提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。
版本:GitLab 分为社区版(CE) 和企业版(EE)。
配置:建议CPU2核,内存2G以上。
1.1git的优点
- git是分布式的,svn不是。git分布式本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器,连不上服务器也能提交代码、查看log。
- GIT分支和SVN的分支不同。分支在SVN中实际上是版本库中的一份copy,而git一个仓库是一个快照,所以git 切换、合并分支等操作更快速。
- git有一个强大的代码仓库管理系统 - gitlab,可以很方便的管理权限、代码review,创建、管理project。
1.2GitLab与GitHub的不同
- Github分布式在线代码托管仓库,个人版本可直接在线免费使用,企业版本收费且需要服务器安装。
- Gitlab 分布式在线代码仓库托管软件,分社区免费版本与企业收费版本,都需要服务器安装。
1.3Gitlab的优势和应用场景
- 开源免费,适合中小型公司将代码放置在该系统中
- 品差异化的版本管理,离线同步以及强大分支管理功能
- 便捷的GUI操作界面以及强大账户权限管理功能
- 集成度很高,能够集成绝大多数的开发工具 支持内置HA,保证在高并发下仍旧实现高可用性
1.4GitLab主要服务构成
- Nginx静态Web服务器
- Gitlab-workhorse 轻量级的反向代理服务器
- Gitlab-shell 用于处理Git命令和修改authorized keys列表
- Logrotate 日志文件管理工具
- Postgresql数据库
- Redis 缓存服务器
1.5GitLab的工作流程
- 创建并克隆项目
- 创建项目某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
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
2.4wget用于外网下载插件
检查系统中是否已经安装wget,使用命令若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装
wget -V
如果没有则安装
yum -y install wget
2.5配置域名
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
补充说明:因为编译gitlab的配置 /etc/gitlab/gitlab.rb 时会重新生成这个自定义nginx 配置,所以只要 gitlab 的配置配得好,上面的nginx其实不需要自定义的。
也可以修改/etc/gitlab/gitlab.rb文件配置端口号
vim /etc/gitlab/gitlab.rb
找到external_url -> 服务器http://IP:端口
2.6添加gitlab镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
2.7安装gitlab
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
2.8修改gitlab配置文件指定服务器IP和自定义端口
vim /etc/gitlab/gitlab.rb
修改服务器IP
external_url 'http://gitlab.test.domain.com:8888'
执行配置
gitlab-ctl reconfigure
启动
gitlab-ctl start
出现如下说明成功
ok: run: alertmanager: (pid 7324) 0s
ok: run: gitaly: (pid 7334) 0s
ok: run: gitlab-monitor: (pid 7355) 1s
ok: run: gitlab-workhorse: (pid 7360) 0s
ok: run: logrotate: (pid 7373) 1s
ok: run: nginx: (pid 7416) 0s
ok: run: node-exporter: (pid 7461) 0s
ok: run: postgres-exporter: (pid 7467) 1s
ok: run: postgresql: (pid 7473) 0s
ok: run: prometheus: (pid 7481) 1s
ok: run: redis: (pid 7492) 0s
ok: run: redis-exporter: (pid 7496) 1s
ok: run: sidekiq: (pid 7502) 0s
ok: run: unicorn: (pid 7517) 0s
修改储存位置
sudo vi /etc/gitlab/gitlab.rb
git_data_dirs -> 修改成目标位置
配置执行
sudo gitlab-ctl reconfigure
重新启动
gitlab-ctl restart
2.9重启gitlab并访问
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页面
2.10安全考虑,需要创建public key认证
创建命令
ssh-keygen
一直回车
复制id_rsa.pub公钥
cat .ssh/id_rsa.pub
将公钥添加到gitlab中
2.11在Gitlab的主页新建一个Porject
转载自:https://juejin.cn/post/7029338933129379853