1. 什么是Gitlab?
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。
官方文档: https://about.gitlab.com/
2. Gitlab安装
1. 下载Gitlab的rpm包至本地
可去选择合适的版本https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
[root@gitlab-haitang ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.9-ce.0.el7.x86_64.rpm
已发出 HTTP 请求,正在等待回应... 200 OK
长度:697908520 (666M) [application/x-redhat-package-manager]
正在保存至: “gitlab-ce-12.3.9-ce.0.el7.x86_64.rpm”
100%[============================================================================================>] 697,908,520 4.40MB/s 用时 1m 55s
2023-03-18 02:29:13 (5.80 MB/s) - 已保存 “gitlab-ce-12.3.9-ce.0.el7.x86_64.rpm” [697908520/697908520])
2. 使用yum安装gitlab
会帮我们解决依赖包
[root@gitlab-haitang ~]# yum localinstall gitlab-ce-12.3.9-ce.0.el7.x86_64.rpm -y
It looks like GitLab has not been configured yet; skipping the upgrade script.
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
已安装:
gitlab-ce.x86_64 0:12.3.9-ce.0.el7
作为依赖被安装:
audit-libs-python.x86_64 0:2.8.5-4.el7 checkpolicy.x86_64 0:2.5-8.el7 libcgroup.x86_64 0:0.41-21.el7
libsemanage-python.x86_64 0:2.5-14.el7 policycoreutils-python.x86_64 0:2.5-34.el7 python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.8-4.el7
作为依赖被升级:
policycoreutils.x86_64 0:2.5-34.el7
完毕!
3. 配置Gitlab域名
[root@gitlab-haitang ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.haitang.local'
4. 关闭gitlab不需要的组件
node_exporter['enable'] = false
redis_exporter['enable'] = false
alertmanager['enable'] = false
prometheus['enable'] = false
prometheus['monitor_kubernetes'] = false
postgres_exporter['enable'] = false
pgbouncer_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false
grafana['enable'] = false
5. 初始化gitlab
这个初始化会得一会,稍等;第一次会初始化配置文件,随后每修改配置文件都要进行初始化进行重新加载配置;
[root@gitlab-haitang gitlab]# gitlab-ctl reconfigure
Recipe: monitoring::prometheus
* execute[reload prometheus] action run
- execute /opt/gitlab/bin/gitlab-ctl hup prometheus
Recipe: <Dynamically Defined Resource>
* service[alertmanager] action restart
- restart service service[alertmanager]
* service[postgres-exporter] action restart
- restart service service[postgres-exporter]
* service[grafana] action restart
- restart service service[grafana]
Running handlers:
Running handlers complete
Chef Client finished, 528/1419 resources updated in 03 minutes 15 seconds
gitlab Reconfigured!
6. 查看组件状态以及端口
gitlab是运行在80端口
[root@gitlab-haitang gitlab]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1435/master
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 13403/nginx: master
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 11614/gitlab-workho
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13403/nginx: master
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 13321/unicorn maste
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 13330/sidekiq 5.2.7
tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 11596/gitaly
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1067/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1435/master
tcp6 0 0 :::22 :::* LISTEN 1067/sshd
查看各个组件是否运行
[root@gitlab-haitang gitlab]# gitlab-ctl status
run: gitaly: (pid 11587) 720s; run: log: (pid 10641) 856s
run: gitlab-workhorse: (pid 11614) 720s; run: log: (pid 11030) 806s
run: logrotate: (pid 11133) 795s; run: log: (pid 11174) 794s
run: nginx: (pid 13403) 58s; run: log: (pid 11110) 799s
run: postgresql: (pid 10740) 851s; run: log: (pid 10799) 848s
run: redis: (pid 10535) 863s; run: log: (pid 10565) 862s
run: sidekiq: (pid 13330) 69s; run: log: (pid 11004) 811s
run: unicorn: (pid 13511) 46s; run: log: (pid 10967) 817s
7. 配置hosts解析并访问即可
第一次登陆修改密码;修改完成密码后,用户为root,密码为修改后的密码