搭建于虚拟机:
CentOS Linux release 7.9.2009 (Core)
3.10.0-1160.el7.x86_64
(1处理器,8GB内存,生产环境要根据实际需要,此软件还是比较吃内存的)
Gitlab搭建部署
下载地址:
https://packages.gitlab.com/gitlab/gitlab-ce
https://mirrors.cloud.tencent.com/gitlab-ce/
[root@localhost opt]# ls -lh total 865M -rw-r--r--. 1 root root 865M Aug 7 23:29 gitlab-ce-13.12.9-ce.0.el7.x86_64.rpm
安装所需的依赖软件并开启服务:
[root@localhost opt]# yum install -y curl postfix cronie policycoreutils-python
安装Gitlab的rpm包:
##需要一些时间,稍等等 [root@localhost opt]# rpm -ivh gitlab-ce-13.12.9-ce.0.el7.x86_64.rpm warning: gitlab-ce-13.12.9-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY Preparing... ################################# [100%] Updating / installing... 1:gitlab-ce-13.12.9-ce.0.el7 ################################# [100%] It looks like GitLab has not been configured yet; skipping the upgrade script. *. *. *** *** ***** ***** .****** ******* ******** ******** ,,,,,,,,,***********,,,,,,,,, ,,,,,,,,,,,*********,,,,,,,,,,, .,,,,,,,,,,,*******,,,,,,,,,,,, ,,,,,,,,,*****,,,,,,,,,. ,,,,,,,****,,,,,, .,,,***,,,, ,*,. _______ __ __ __ / ____(_) /_/ / ____ _/ /_ / / __/ / __/ / / __ `/ __ \ / /_/ / / /_/ /___/ /_/ / /_/ / \____/_/\__/_____/\__,_/_.___/ Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command: sudo gitlab-ctl reconfigure For a comprehensive list of configuration options please see the Omnibus GitLab readme https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md Help us improve the installation experience, let us know how we did with a 1 minute survey: https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=13-12
编辑配置文件:
这里提示一下,配置文件版本上有所不同,比如,我这篇写的时候示例是 13.12.9 版本,但是在实际应用之后 安装的是 14 的版本,按照下面的配置方式已经报错啦;
不过报错中会给予提示,https://docs.gitlab.com/ee/administration/operations/puma.html 官网的文档,主要是 unicorn 已经弃用,需要切换到 Puma ;
[root@localhost opt]# vim /etc/gitlab/gitlab.rb ... ... ##设置地址,填写主机的IP地址即可 ##下面两个端口设置是直接添加的 external_url 'http://192.168.180.129' ##端口这里要设置,根据需求指定,以前版本为 unicorn ,目前新版本为 puma ##最初我这里没有指定,一直提示我网页重定向,不能访问 puma['port'] = 8765 nginx['listen_port'] = 9876 ##可以编辑自己制定的目录位置存放数据,记得创建目录 ##设置多个目录位置,{ } 之间需要用 , 分隔 git_data_dirs({ "default" => { "path" => "/codeData/git-data" }, "test1" => { "path" => "/codeData/test1/" } }) ... ... ... ... ##这里是配置文件里默认带的模板,配置是可以复制来修改 612 # git_data_dirs({ 613 # "default" => { 614 # "path" => "/mnt/nfs-01/git-data" 615 # } 616 # }) ... ... ... ... ##编辑保存配置文件后,若是自己指定了数据目录,则需要创建 [root@localhost opt]# mkdir -pv /codeData mkdir: created directory ‘/codeData’
配置初始化:
##初始化配置时间比较长,耐心等等 [root@localhost opt]# gitlab-ctl reconfigure ... ... ... ... Recipe: monitoring::grafana * runit_service[grafana] action restart (up to date) Running handlers: Running handlers complete Chef Infra Client finished, 595/1565 resources updated in 04 minutes 24 seconds Notes: It seems you haven't specified an initial root password while configuring the GitLab instance. On your first visit to your GitLab instance, you will be presented with a screen to set a password for the default admin account with username `root`. gitlab Reconfigured!
修改nginx端口配置:
## server_name 可以填写IP及端口,也可以填写域名 ## 这个设置与 /etc/gitlab/gitlab.rb 中的 external_url 相应 [root@localhost opt]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf server { ## HTTPS server listen *:9876; server_name 192.168.180.129:9876; ... ... ... ...
启动服务:
##启动服务 [root@localhost opt]# gitlab-ctl start ok: run: alertmanager: (pid 3793) 281s ok: run: gitaly: (pid 3686) 285s ok: run: gitlab-exporter: (pid 3693) 284s ok: run: gitlab-workhorse: (pid 3666) 286s ok: run: grafana: (pid 3810) 280s ok: run: logrotate: (pid 2485) 496s ok: run: nginx: (pid 3051) 413s ok: run: node-exporter: (pid 3677) 285s ok: run: postgres-exporter: (pid 3804) 280s ok: run: postgresql: (pid 2739) 473s ok: run: prometheus: (pid 3705) 283s ok: run: puma: (pid 2947) 431s ok: run: redis: (pid 2527) 490s ok: run: redis-exporter: (pid 3695) 284s ok: run: sidekiq: (pid 2975) 425s ##相应的,也有停止服务和重启服务 ##停止服务 [root@localhost opt]# gitlab-ctl stop ##重启服务 [root@localhost opt]# gitlab-ctl restart
注意:记得关闭firewalld和selinux;
修改默认的 root 密码:
[root@localhost ~]# gitlab-rails console -------------------------------------------------------------------------------- Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] GitLab: 13.12.9 (af9df3fee54) FOSS GitLab Shell: 13.18.1 PostgreSQL: 12.6 -------------------------------------------------------------------------------- Loading production environment (Rails 6.0.3.7) irb(main):001:0> user = User.where(id:1).first => #<User id:1 @root> irb(main):002:0> user.password='123456789' => "123456789" irb(main):003:0> user.password_confirmation='123456789' => "123456789" irb(main):004:0> user.save! Enqueued ActionMailer::MailDeliveryJob (Job ID: 6db44a2e-890d-427b-b9ae-77facab8c8cf) to Sidek iq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<Globa lID:0x00007f69b12c3248 @uri=#<URI::GID gid://gitlab/User/1>>]} => true irb(main):005:0>
浏览器访问:http://192.168.180.129:9876/
这里上来会提示我们修改密码:
这里的邮箱需要你设置一个开通了SMTP的邮箱,若想上述步骤是没有设置的,那么填写了新的密码下一步之后,会提示如下(直接翻译,英语看费劲):
邮箱的配置是选择性的,可以有,也可以没有;
当你没有配置的时候下面会有一行:已经有登录和密码,直接进行登录(第一个页面下面也有:Already have login and password? Sign in)
我们直接点击跳转到登录即可:
接下来——
我们把他设置为中文界面(注意:并不是全部汉化,但足够你分清功能,方便使用);
滚动至最下方即可找到,选择后记得点击 Save changes 保存;
Gitlab项目创建及用户管理
首先来看一下管理中心的界面,你需要做的管理,都在这里可以找到:
View latest users 是查看当前已经存在的用户的列表;
点击 新建用户 进入创建用户的界面(填写信息后记得确认保存 Create user):
这里有几项需要说明:
1、第一项名称,是你登录时用的账户名,而第二项 Username 则是你登陆后你个人显示的名字;
2、电子邮件可以是随便的,若你设置了stmp邮箱,可以发送邮件,那么可以填写真实的邮件地址,用来日常接受邮件;
3、密码问题,首次创建的用户没有密码,这个密码需要你创建账号后,再次进入用户设置进行初始化设置;
初始化密码后的第一次登录(每次初始化都是)会要求你重新设置密码,之后不进行重置设置便会一直可以使用;
4、普通用户和管理员用户差别在于可见的项目以及各种管理,这个用户的权限是针对整个Gitlab的;
View latest groups 是查看当前已经存在的群组的列表;
点击 新建群组 进入创建群组的界面(填写信息后记得保存):
这里有几项需要说明:
1、可见性级别,私有是你需要自己设定哪些用户和群组可以查看,内部则是可以登录到Gitlab的所有用户均可查看,而公开是所有人,只要进入网页,当然,我们部署的是本地内部的项目;
(公司内部使用,我都是创建的私有,管理员可以查看任何,但是其他人要设置权限,不要给太大了)
2、允许创建新项目和子群组的这两个中,维护者 相当于管理员 ,但是他不是 拥有者 ,这个相应的需要区分一下,依然遵从工作流程给予合适的最小权限即可;
群组这里涉及到一个添加组员的操作:
点击管理界面的 View latest groups 来查看现有的群组;
将指定的用户添加到群组里;
用户组内的身份权限需要设定一下:
Guest 只能看;
Reporter 可以看,可以克隆,其他不行;
Developer 开发者权限,可以各种修改,提交什么的,开发人员的用户,给到这个就行;
Maintainer 维护者,也就是管理员,权限比较大,对代码的操作也是非常多,权限都给了,但是他不能删除项目;
Owner 拥有者,这个就不要随便给了,为所欲为了(仅限这个群组);
这里只说新建空白项目做个例子,导入跟随提示即可(创建非常简单,主要是相应的设置);
点击 新建项目 之后进入界面,里面三项:创建空白项目,模板创建 和 导入;
创建后新仓库会有提示,是一些基本操作,之后需要的是你把代码放到这里:
管理设置需要进入 管理中心 点击 View latest projects 进入项目列表:
这里和群组添加成员的界面类似,邀请单独的用户和群组都是在此设置:
说明一下,每个成员用户都有自己的邮箱,当你邀请成员时,点击下拉列表可能会出现邮箱地址让你选择,它会自动为你选择到相应的用户;
当你直接去点这个输入框的位置时就会显示邮箱地址,你需要让光标在输入框中显示,那么它显示的就是用户列表了;
过期时间你可以不设定,代表的是永不过期;