环境准备
系统 | IP | 配置 |
---|---|---|
centos7.9(图形化) | 192.168.8.180 | 2c4g--300G |
Gitlab介绍
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它由Ruby写成。后来,一些部分用Go语言重写,现今并在国内外大中型互联网公司广泛使用。
git、gitlab、GitHub的简单区别
git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面。
gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发。
github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时免费账户和提供付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库
Gitlab常用组件
nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表,gitlab是以Git为底层的,操作实际上最后就是调用gitlab-shell命令进行处理。
gitlab-workhorse:轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails应用是托管在这个服务器上面的
Gitlab安装部署
1、安装依赖
[root@localhost ~]# yum -y install curl openssh-server postfix wget
2、安装部署
通过网盘分享的文件:gitlab
链接: https://pan.baidu.com/s/1MFo47QU4nppaPiYW_yzJFw?pwd=3154 提取码: 1234
[root@localhost ~]# rpm -ivh gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm
3、修改配置文件
注意:若电脑/服务器性能很好,则只需要改32行即可其他勿动
[root@localhost ~]# vim /etc/gitlab/gitlab.rb
......................
32 external_url 'http://gitlab.xietingfeng.com'
85 gitlab_rails['smtp_enable'] = false
810 gitlab_rails['registry_enabled'] = false
827 registry['enable'] = false
2048 prometheus['enable'] = false
2131 alertmanager['enable'] = false
2154 node_exporter['enable'] = false
2178 redis_exporter['enable'] = false
2201 postgres_exporter['enable'] = false
2237 gitlab_exporter['enable'] = false
2272 prometheus_monitoring['enable'] = false
......................
#过滤#号的行
[root@localhost ~]# egrep -v '^$|#' /etc/gitlab/gitlab.rb
external_url 'http://gitlab.xietingfeng.com'
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false
[root@localhost ~]# egrep -v '^$|#' /etc/gitlab/gitlab.rb |wc -l
11
[root@localhost ~]#
[root@localhost ~]# mv /etc/gitlab/gitlab.rb{,.bak}
[root@localhost ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.xietingfeng.com'
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false
4、重载配置文件
#根据 /etc/gitlab/gitlab.rb 配置文件中的设置,重新生成和应用 GitLab 的配置(1-5分钟)
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# echo $?
0
#重启 GitLab 的所有相关服务
[root@localhost ~]# gitlab-ctl restart
ok: run: gitaly: (pid 32236) 0s
ok: run: gitlab-kas: (pid 32256) 0s
ok: run: gitlab-workhorse: (pid 32264) 0s
ok: run: logrotate: (pid 32275) 0s
ok: run: nginx: (pid 32357) 1s
ok: run: postgresql: (pid 32366) 0s
ok: run: puma: (pid 32382) 0s
ok: run: redis: (pid 32387) 0s
ok: run: sidekiq: (pid 32395) 1s
[root@localhost ~]# echo $?
0
#查看服务运行状态
[root@localhost ~]# gitlab-ctl status
run: gitaly: (pid 32236) 470s; run: log: (pid 31393) 791s
run: gitlab-kas: (pid 32256) 460s; run: log: (pid 31702) 765s
run: gitlab-workhorse: (pid 32264) 459s; run: log: (pid 31881) 647s
run: logrotate: (pid 32275) 459s; run: log: (pid 31291) 804s
run: nginx: (pid 32357) 459s; run: log: (pid 31934) 639s
run: postgresql: (pid 32366) 450s; run: log: (pid 31560) 774s
run: puma: (pid 32382) 449s; run: log: (pid 31813) 657s
run: redis: (pid 32387) 449s; run: log: (pid 31336) 798s
run: sidekiq: (pid 32395) 448s; run: log: (pid 31837) 654s
5、访问
#查看root密码
[root@localhost ~]# cat /etc/gitlab/initial_root_password
..........................
Password: J8GdzQPzba78ogSI6qNpyr37xWAPw2oJIO4DBpKmvx8=
..........................
[root@localhost ~]#
因为这个root密码24小时之后就不能用了,所以我们需要现在修改一下root固定密码
6、设置中文页面
首先我们改一下中文
案例1
- 创建Devops开发组
- 添加用户xietingfeng
- 创建yiliao项目
- 将项目与Devops组关联
创建群组
创建用户
随后用户登录时将被迫修改密码
群组与用户关联
Guest:客户/客人
Reporter:记者
Developer:开发人员
Maintainer:维护人员
Owner:管理员
新建项目
登录xietingfeng用户,复制克隆连接,并克隆项目到本地
[root@localhost ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''
[root@localhost ~]# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKopaSqjOlgcpEHNWf0gnxK8tUo8OZdgfib/hALtwlWXjQ0/KyGMJH0oIplkg9a8eOIlt5+kS/PvYfyt5S1Zj4RiwNROH62wACKw9q1FdQQHU0RJECgj91JtULp6aL9c0oMllupLjaaRqnedM/Karn92RB76wL2+pAP/+9mV4WaoXeVetPkrsOHDl+RtqWVgU3t8QhB7pDy/YyXxc+qdaJ/aGJz7ZcqoXqXToZTLfQmHyWsGgcOnrA1fVCnU5nTBlEXdZnmCyEWhvepHKKOsXx70XjHNOI+9Pw5nFgOUw5rWw8wwSViRnhvbd9+2I2prZ0oxSAXURjW1r8lcP1L1b1 [email protected]
[root@localhost ~]# more /etc/hosts
192.168.8.180 gitlab.xietingfeng.com
[root@localhost ~]# git clone http://gitlab.xietingfeng.com/devops/yiliao.git
正克隆到 'yiliao'...
Username for 'http://gitlab.xietingfeng.com': xietingfeng
Password for 'http://[email protected]':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
[root@localhost ~]# ll
总用量 2
-rw-------. 1 root root 1778 8月 26 09:39 anaconda-ks.cfg
drwxr-xr-x. 3 root root 35 9月 9 17:22 yiliao
[root@localhost ~]#