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  找每一个文件夹,还有就是的看配置文件