GitLab是第一款从DevOps生命周期的所有阶段为产品,开发,QA,安全和运营团队同时在同一项目上同时开发的单一应用程序。GitLab使团队能够通过单一对话进行协作和工作,而不是跨不同工具管理多个线程。GitLab在整个DevOps生命周期中为团队提供单个数据存储,一个用户界面和一个权限模型,允许团队协作,显着缩短周期时间并专注于快速构建优秀软件。
GitLab由以下服务构成:
-
nginx
:静态Web服务器 -
gitlab-shell
:用于处理Git命令和修改authorized keys列表 -
gitlab-workhorse
:轻量级的反向代理服务器 -
logrotate
:日志文件管理工具 -
postgresql
:数据库 -
redis
:缓存数据库 -
sidekiq
:用于在后台执行队列任务(异步执行) -
unicorn
:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
1、实验前准备
实验测试环境:
[root@localhost data]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
2、gitlab安装
(1)官网企业版给出的安装
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
(2)在配置文件/etc/gitlab/gitlab.rb,寻找gitlab url 就是其访问的地址
3、参考官网社区版gitlab安装过程
(1)安装配置依赖
yum install curl openssh-server openssh-clients postfix cronie -y
systemctl postfix start
echo "systemctl postfix start" >> /etc/rc.local
#如何firewalld 开启则需要开启端口
firewall-cmd --permanent --add-service=http --add-service=ssh
(2)添加gitlab仓库到服务器上
curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
yum install gitlab-ce
【*】你也可以在官网选择的你需要的rpm的版本,下载到本地,使用rpm -ivh 命令安装
启动gitlab服务,每一次修改配置文件都需要是以下命令重新加载配置文件
gitlab-ctl reconfigure
【*】注意事项
gitlab本身是的采用80端口,unicorn采用的是8080端口,如果服务器本身就这俩个端口则会启动报错
修改其端口号vim /etc/gitlab/gitlab.rb,修改完毕之后,重新加载配置文件
external_url 'http://192.168.100.26:90'
# unicorn['listen'] = '127.0.0.1'
# unicorn['port'] = 8080
修改gitlab配置文件,停用gitlab内置nginx,使用nginx做代理,防止真实url暴漏
nginx[`enable`] = false
4、日常管理
日志位置:/var/log/gitlab 可以进去查看访问日志以及报错日志等,供访问查看以及异常排查。
gitlab-ctl tail #查看所有日志
gitlab-ctl tail nginx/gitlab_access.log #查看nginx访问日志
gitlab-ctl start|stop|status|restart
【*】找不到一个程序的相应配置时候,最笨的方法就是find / -name gitlab 找每一个文件夹,还有就是的看配置文件