gitlab介绍
gitlab适合安装在自己的私有服务器上,避免核心代码暴露在网络上。
集成度很高,能够集成绝大多数的开发工具
支持内置HA,保证在高并发下仍旧实现高可用性
gitlab主要服务构成
Nginx静态Web服务器
Gitlab-workhorse轻量级的反向代理服务器
Gitlab-shell用于处理Git命令和修改authhorized keys列表
Logrotate日志文件管理工具
Postgresql数据库
Redis缓存服务器
gitlab工作流程
创建并克隆项目
创建项目某Feature分支
编写代码并提交至分支
推送该项目分支至远程Gitlab服务器
进行代码检查并提交Master主分支合并申请
项目领导审查代码并确认合并申请
gitlab安装配置管理
利用虚拟机创建测试服务器--Centos7
准备工作
1.关闭firewalld防火墙
#systemctl stop firewalld
#systemctl disable firewalld
2.关闭SELINUX并重启系统
# vi /etc/sysconfig/selinux
...
SELINUX=disabled
...
# reboot
3.安装Omnibus Gitlab-ce package
3.1安装Gitlab组件
# yum -y install curl policycoreutils openssh-server openssh-clients postfix
3.2配置YUM仓库
# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
3.3启动postfix邮件服务
# systemctl start postfix && systemctl enable postfix
3.4安装Gitlab-ce社区版本
# yum -y install gitlab-ce
4.Omnibus Gitlab等相关配置初始化并完成安装
4.1证书创建与配置加载
# mkdir -p /etc/gitlab/ssl
#openssl genrsa -out "/etc/gitlab/ssl/gitlab.example.com.key" 2048
#openssl req -new -key "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.csr"
# ll
#openssl x509 -req -days 365 -in "/etc/gitlab/ssl/gitlab.example.com.csr" -signkey "/etc/gitlab/ssl/gitlab.example.com.key" -out "/etc/gitlab/ssl/gitlab.example.com.crt"
# ll
#openssl dhparam -out /etc/gitlab/ssl/dhparams.pem 2048
# chmod 600 *
#vi /etc/gitlab/gitlab.rb
...external_url 'https://gitlab.example.com'
/redirect_http_to_https 参数改为true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
nginx['ssl_dhparam'] = /etc/gitlab/ssl/dhparams.pem
# gitlab-ctl reconfigure
4.2Nginx SSL代理服务配置
# vi /var/opt/gitlab/nginx/conf/gitlab-http.conf
/server_name
添加
rewrite ^(.*)$ https://$host$1 permanent;
4.3初始化Gitlab相关服务并完成安装
# gitlab-ctl restart
gitlab的应用
安装完成,修改hosts文件,登录gitlab.example.com访问如下:
1.首次登录修改root密码
2.登录成功显示如下界面:
3.新建项目
4.克隆仓库到本地
http.sslverify = false # 避免证书失效
5.创建文件提交分支
5.1 进入test-repo,创建一个test.py文件并保存
5.2 $ git add . 将工作区中所有未跟踪或者修改的文件添加到暂存区,不处理删除文件
5.3 git commit -m "First commit" # First commit为提交信息
上图中因为没有创建全局用户及邮箱,提示 fatal: unable to auto-detect email address (got 'zhangw@DESKTOP-K1U9H6G.(none)')
5.4 创建全局用户和邮箱,重新提交
5.5 本地master分支同步到远程gitlab服务器
6.返回gitlab服务器,查看
end