Gitlab
理论
Gitlab作为一个开源项目开始帮助团队在团建开发上进行合作,通过以业界领先的步伐交付新的功能为整个软件开发和操作生命周期提供了一个单独的应用平台。Gitlab提供了管理、计划、创建、验证、打包、发布、配置、监视和保护应用程序所需的一切。Gitlab是一个基于git实现的在线代码仓库托管软件,一般用于企业、学校等内部网络搭建git私服。Gitlab是一个提供代码托管、提交审核和问题跟踪的代码管理平台。Gitlab分社区版(CE)和企业版(EE)
常见的代码托管平台:
1.SVN
2.github(全世界都在使用,人家创建好的,注册就可以使用,企业用的话不安全)
3.gitlab(自己公司自己使用,企业自己可以创建)
git、gitlab、github的区别
git:是一种基于命令的版本控制系统,全命令操作,没有可视化界面
gitlab:是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团对内部协作开发
github:是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库(开源:开发源代码)
gitlab服务组成部分(核心)
nginx:静态web服务器
gitlab-shell:用于处理git命令和修改authorized keys列表(ruby)
gitlab-workhorse:轻量级反向代理服务器(go)会处理一些大的HTTP请求,比如文件的下载、文件的上传、git push/pull和git包下载,其他请求会反向代理到gitlab rails应用,即反向代理给后端的unicorn
log rotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)(消息队列)(ruby)
unicorn:用ruby编写的一个HTTP服务器,gitlab rails应用是托管在这个服务器上
ruby:用ruby语言编写的
go:用go语言编写的
gitlab的常用命令
gitlab-ctl start|stop|restart 开启 关闭 重启 gitlab
gitlab-ctl start nginx #启动nginx的组件
gitlab-ctl tail #查看gitlab所有的日志
gitlab-ctl tail nginx 查看nginx组件的日志
gitlab-ctl reconfigure #重新编译
gitlab-ctl console(produce) #进入到gitlab的shell
Gitlab的安装
[root@localhost ~]# yum -y install cronie o