tags: [gitlab]
categories: [工具]


前言

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的 web服务,GitLab是可以部署到自己的服务器 上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发
GitLab有点吃资源,我的1核2G服务器自安装后巨卡无比,建议在配置更好的服务器或者直接在自己的虚拟上测试,会方便很多

安装相关依赖

  1. # 前两个是ssh服务,后面是邮件服务,gitlab需要发送邮件
  2. yum -y install openssh-server openssh-clients postfix
  3. # 这个和gitlab的安装有关
  4. yum -y policycoreutils policycoreutils-python
  5. # 启动sshd服务
  6. systemctl enable sshd && sudo systemctl start sshd
  7. # 修改postfix配置文件,启动并设置开机自启,修改内容在括号里面
  8. vim /etc/postfix/main.cf
  9. (
  10. inet_interfaces = all
  11. inet_protocols = ipv4
  12. )
  13. systemctl start postfix
  14. systemctl enable postfix
  15. # 有防火墙注意关闭防火墙,没有firewalld建议安装, 82是我的端口号
  16. firewall-cmd --zone=public --add-port=82/tcp --permanent
  17. firewall-cmd --add-service=http --permanent
  18. firewall-cmd --add-service=ssh --permanent
  19. firewall-cmd --reload

下载镜像文件和安装

建议去清华大学镜像站下载,地址:GITLAB社区版地,下载rpm安装包

  1. rpm -ivh gitlab-ce-12.9.1-ce.0.el6.x86_64.rpm

出现以下界面代表安装成功了
image.png

GITLAB命令

  1. # 启动gitlab
  2. gitlab-ctl start
  3. # 停止gitlab
  4. gitlab-ctl stop
  5. # 查看gitlab状态
  6. gitlab-ctl status

修改配置

  1. # 编辑gitlab配置文件
  2. vim /etc/gitlab/gitlab.rb
  3. 修改项开始===>
  4. 该地址为访问GITLAB地址,需要加上前面的端口号
  5. external_url 'http://该服务器IP:82'
  6. # 该配置是为了防止和8080端口冲突,个人测试尤其注意,如果你单独服务来部署,当我没说
  7. unicorn['port'] = 8282
  8. gitlab_workhorse['auth_backend'] = "http://localhost:8282"
  9. <===修改项结束
  10. # 重新配置
  11. gitlab-ctl reconfigure
  12. # 重启gitlab
  13. gitlab-ctl restart

问题记录

  • rpm安装失败
    • 这种情况,一般都是以来没安装好导致的,需要保证安装之前policycoreutils openssh-server openssh-clients postfix这四个都安装好了
  • policycoreutils-python安装失败,执行yum install policycoreutils-python -y提示无该软件

这种情况我遇到了,是因为centOS8该软件已经修改为新的名称所致,帖子在这

  • postfix启动失败

一般都是没加括号里面的配置,加上之后重新启动即可

  • 访问直接是无响应,404

这种情况一般都是网络限制,检查防火墙限制

  1. # 查看防火墙状态
  2. firewall-cmd --state
  3. # 查看防火墙开放端口
  4. firewall-cmd --permanent --zone=public --list-ports

如果是云服务器的话,安全组配置需要添加

  • 以上都完成了访问GITLAB还是502

image.png
建议多等等QAQ

卸载GITLAB

  1. 停止并卸载 ```shell

    停止gitlab

    sudo gitlab-ctl stop

rpm卸载gitlab

sudo rpm -e gitlab-ce

  1. 2. 杀死守护进程
  2. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/684348/1587519713281-65c9deb2-c3f3-4dac-bc49-77195490ed8b.png#align=left&display=inline&height=249&margin=%5Bobject%20Object%5D&name=image.png&originHeight=498&originWidth=1192&size=98601&status=done&style=none&width=596)
  3. ```shell
  4. kill -9 1220
  1. 删除gitlab文件
    1. find / -name gitlab|xargs rm -rf
  1. [root@iZm5e5d84aus1oanps2omoZ opt]# gitlab-ci-multi-runner register
  2. Running in system-mode.
  3. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
  4. http://114.215.86.43:82/
  5. Please enter the gitlab-ci token for this runner:
  6. 9aNqD5sETsx4swx7hbGW
  7. Please enter the gitlab-ci description for this runner:
  8. [iZm5e5d84aus1oanps2omoZ]: zoombar-runner
  9. Please enter the gitlab-ci tags for this runner (comma separated):
  10. deploy
  11. Whether to run untagged builds [true/false]:
  12. [false]: false
  13. Whether to lock Runner to current project [true/false]:
  14. [false]: false
  15. Registering runner... succeeded runner=9aNqD5sE
  16. Please enter the executor: shell, docker, docker-ssh, parallels, ssh, virtualbox, docker+machine, docker-ssh+machine, kubernetes:
  17. shell
  18. Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

配置GITLAB HTTPS域名访问

证书设置

将创建好的证书放到/etc/gitlab/ssl目录下,证书获取详见我的另外一篇博客https://www.yuque.com/guyuefangyuan/blog/og9wzl

修改配置文件

找到/etc/gitlab/gitlab.rb文件,涉及到的配置修改项如下

  1. # 访问的链接
  2. external_url 'https://gitlab.zoombar.fun'
  3. # nginx开启
  4. nginx['enable'] = true
  5. # 访问http重定向到http
  6. nginx['redirect_http_to_https'] = true
  7. # 重定向端口
  8. nginx['redirect_http_to_https_port'] = 80
  9. # 证书路径
  10. nginx['ssl_certificate'] = "/etc/gitlab/ssl/cert.cer"
  11. # key路径
  12. nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/cert.key"

更新Gitlab配置

  1. # 重新配置
  2. gitlab-ctl reconfigure

修改nginx 配置文件

  1. # 修改nginx配置文件
  2. vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
  3. #添加了一栏 ssl on
  4. server {
  5. listen *:443 ssl http2;
  6. server_name gitlab.zoombar.fun;
  7. server_tokens off; ## Don't show the nginx version number, a security best practice
  8. ssl on;
  9. ## Increase this if you want to upload large attachments
  10. ## Or if you want to accept large git objects over http
  11. client_max_body_size 0;
  12. ## Strong SSL Security
  13. ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/
  14. ssl_certificate /etc/gitlab/ssl/cert.cer;
  15. ssl_certificate_key /etc/gitlab/ssl/cert.key;
  16. ...
  17. ...

重启GitLab

  1. gitlab-ctl restart

相关