GitLab

GitLab是一个开源的git仓库管理平台,方便团队协作开发、管理。在GitLab上可以实现完整的CI(持续集成)、CD(持续发布)流程。而且还提供了免费使用的Plan,以及免费的可以独立部署的社区版本https://gitlab.com/gitlab-org/gitlab-ceopen in new window

官网: https://about.gitlab.com/open in new window

安装

本文示例服务器环境为 Centos 7.6

1、安准基础依赖

#安装技术依赖
sudo yum install -y curl policycoreutils-python openssh-server

#启动ssh服务&设置为开机启动
sudo systemctl enable sshd
sudo systemctl start sshd

2、安装Postfix

Postfix是一个邮件服务器,GitLab发送邮件需要用到

#安装postfix
sudo yum install -y postfix

#启动postfix并设置为开机启动
sudo systemctl enable postfix
sudo systemctl start postfix

3、开放ssh以及http服务(80端口)

#开放ssh、http服务
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --add-service=http --permanent

#重载防火墙规则
sudo firewall-cmd --reload

部署

本次我们部署的是社区版: gitlab-ce,如果要部署商业版可以把关键字替换为:gitlab-ee

1、Yum安装GitLab

添加GitLab社区版Package

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

安装GitLab社区版

sudo yum install -y gitlab-ce

安装成功后会看到 gitlab-ce 打印了以下图形

2、配置GitLab站点域名

GitLab默认的配置文件路径是 /etc/gitlab/gitlab.rb

默认的站点域名配置项是:

external_url 'http://gitlab.example.com'

这里将GitLab站点域名修改为http://**你的域名**

也可以用IP代替域名,这里根据自己需求来即可

#修改配置文件
sudo vi /etc/gitlab/gitlab.rb

#配置首页地址(大约在第15行)
external_url 'http://qiuxc.cn'

3、启动并访问GitLab

启动GitLab

#重新配置并启动
sudo gitlab-ctl reconfigure

#完成后将会看到如下输出
Running handlers complete
Chef Client finished, 432/613 resources updated in 03 minutes 43 seconds
gitlab Reconfigured!

访问GitLab 将设置的域名DNS解析到服务器IP,或者修改本地host将域名指向服务器IP。 访问设置的域名即可验证GitLab是否配置成功

这里需要使用默认的 root 用户登陆,其默认密码保存在 /etc/gitlab/initial_root_password。使用默认密码登陆成功后,应进入个人信息页面修改密码

使用外置 Nginx & 配置域名

参考:官方文档open in new window

参考链接🔗:
CentOS 7 下 GitLab安装部署教程open in new window
gitlab配置域名访问open in new window
gitlab项目自动同步到github或者码云giteeopen in new window

卸载删除 GitLab

  1. 停止 gitlab
gitlab-ctl stop
  1. 卸载 gitlab-ce
rpm -e gitlab-ce
  1. 查看 gitlab 进程
$ ps aux | grep gitlab

root      1453  0.0  0.0   4384   496 ?        Ss   Jul04   0:28 runsvdir -P /opt/gitlab/service log: ...........................................................................................................................................................................................................................................................................................................................................................................................................
root      1488  0.0  0.0   4376   548 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/logrotate
root      1529  0.0  0.0   4376   540 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/redis
root      1576  0.0  0.0   4376   512 ?        S    Jul04   0:00 svlogd /var/log/gitlab/gitaly
root      1721  0.0  0.0   4376   540 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/postgresql
root      1830  0.0  0.0   4232   444 ?        Ss   Jul04   0:00 runsv gitlab-kas
root      1843  0.0  0.0   4376   540 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/gitlab-kas
root      2014  0.0  0.0   4376   516 ?        S    Jul04   0:05 svlogd /var/log/gitlab/sidekiq
root      2025  0.0  0.0   4232   444 ?        Ss   Jul04   0:00 runsv gitlab-workhorse
root      2051  0.0  0.0   4376   336 ?        S    Jul04   0:00 svlogd /var/log/gitlab/gitlab-workhorse
root      2136  0.0  0.0   4376   544 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/node-exporter
root      2151  0.0  0.0   4232   356 ?        Ss   Jul04   0:00 runsv gitlab-exporter
root      2162  0.0  0.0   4376   540 ?        S    Jul04   0:04 svlogd -tt /var/log/gitlab/gitlab-exporter
root      2186  0.0  0.0   4376   540 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/redis-exporter
root      2217  0.0  0.0   4376   544 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/prometheus
root      2258  0.0  0.0   4376   540 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/alertmanager
root      2298  0.0  0.0   4376   540 ?        S    Jul04   0:17 svlogd -tt /var/log/gitlab/postgres-exporter
root      2571  0.0  0.0   4376   540 ?        S    Jul04   0:00 svlogd -tt /var/log/gitlab/grafana
root      7381  0.0  0.0   4376   556 ?        S    15:06   0:00 svlogd -tt /var/log/gitlab/puma
root      7433  0.0  0.0   4376   556 ?        S    15:06   0:00 svlogd -tt /var/log/gitlab/nginx
root     14383  0.0  0.0 112816   980 pts/0    S+   15:35   0:00 grep --color=auto gitlab
  1. 杀掉第一个进程(就是带有好多…………. 的进程)
kill -9 1453

杀掉后,再 ps aux | grep gitlab 确认一遍,还有没有 gitlab 的进程

  1. 删除所有包含 gitlab 文件
find / -name gitlab | xargs rm -rf