4. gitlab 安装、项目创建

时间:2021-10-18 20:02:23

官网:

https://about.gitlab.com/

https://docs.gitlab.com/omnibus/maintenance/README.html#get-service-status%20

https://docs.gitlab.com/omnibus/settings/configuration.html

参考:

https://blog.51cto.com/flyfish225/2145495

https://www.cnblogs.com/rexcheny/p/9464163.html

0. 相关知识

GitLab和GitHub相同点: 二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
不同点:
1、GitHub如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;通过innersourcing让不在权限范围内的人访问不到该资源。
从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。 git相关概念:
git 是一种版本控制系统,是一个命令,是一种工具
gitlib 是用于实现git功能的开发库,私用的 。
github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内网搭建git私服. 基于ruby on rails 开发的 。
注:gitlab-ce 社区版 ;gitlab-ee是企业版,收费

硬件要求

4 核  4G  
否则服务起不来。

一、 安装基础服务

yum install -y curl openssh-server openssh-clients postfix cronie  policycoreutils-python

二、 开启postfix

GitLab发送邮件需要用到

sudo systemctl enable postfix
sudo systemctl start postfix

三、更新 git yum源

yum 安装

[root@localhost ~]# cat   /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
[root@localhost ~]# yum install -y gitlab-ce

rpm 安装

最新下载安装

https://packages.gitlab.com/gitlab/gitlab-ce                               官方

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/              清华镜像站

wget    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm

rpm -ivh gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm

安装完成

4. gitlab 安装、项目创建

组件介绍:

gitlab  中有许多的组件。都自动安装

nginx: 静态web服务器
gitlab-shell: 用于处理git 命令 和 修改authorized 列表
gitlab-workhorse:轻量级反代服务器
logrotate: 日志文件管理工具
postgresql:数据库
redis: 缓存数据库
sidekiq: 用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails 应用是托管在这个服务器上面的

目录介绍:

/var/opt/gitlab/git-data/repositories/ :库默认存储目录
/opt/gitlab: 应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab: 配置文件目录
/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
/var/opt/gitlab/backups/:备份文件生成的目录

修改配置文件

相关配置 可以参考:
https://docs.gitlab.com/omnibus/settings/nginx.html#service-specific-nginx-settings

vim /etc/gitlab/gitlab.rb

# 初次接触,不想搞很多的话,只要改个ip就够。
external_url 'http://test.example.com' # 如果是自己测试。 如果是自己测试需要绑定host
# external_url = '192.168.134.173' # 也可以使用ip 使用ip的话需注意,中间要加个 "=" 号
##   可以不配,默认gitlab监听127.0.0.1:8080
### Advanced settings
unicorn['listen'] = '0.0.0.0' # 默认是监听127.0.0.1的。这边需要修改地址。 否则外网监听不到。
unicorn['port'] = 8082 # 修改 gitlab运行端口

再次修改/opt/gitlab/etc/gitlab.rb文件。 两边修改的监听地址和端口需一致。

vim   /opt/gitlab/etc/gitlab.rb
### Advanced settings
unicorn['listen'] = '0.0.0.0'
unicorn['port'] = 8082

加载配置。重启。

gitlab-ctl reconfigure
gitlab-ctl restart

gitlab-ctl  主控命令

启动:gitlib-ctl start
关闭:gitlab-ctl stop
重启:gitlab-ctl restart
重载配置:gitlab-ctl reconfigure
验证配置文件 :gitlab-ctl   show-config
查看状态:gitlab-ctl status
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION # 查看版本

查看日志指令

# 查看所有的logs; 按 Ctrl-C 退出
sudo gitlab-ctl tail # 查看nginx 日志
gitlab-ctl   tail  nginx # 若要知道有什么服务组件可以查看。 可以使用 gitlab-ctl status 查看组件服务的状态。 # 查看 gitlab-rails 日志
sudo gitlab-ctl tail gitlab-rails # 拉取某个指定的日志文件
sudo gitlab-ctl tail nginx/gitlab_error.log

日志路劲

/var/log/gitlab/
/var/log/gitlab/gitlab-rails # gitlab日志 主要可以看production.log
/var/log/gitlab/nginx # nginx日志在这个下面

然后可以看到工作目录下的 配置文件 也已经进行加载了,修改了。

cat     /var/opt/gitlab/gitlab-rails/etc/unicorn.rb

4. gitlab 安装、项目创建

查看端口。 可以看到  gitlab的 8280端口起来了。 同时他会默认起一个 nginx。 作为反向代理。

4. gitlab 安装、项目创建

然后直接访问服务器的80端口就可以了

4. gitlab 安装、项目创建

如果有host绑域名的话。  访问域名也是可以的

4. gitlab 安装、项目创建

4. gitlab 安装、项目创建

登陆。默认管理员:

root
123456789

gitlab 密码初始化流程

sudo gitlab-rails console production

指令在

/opt/gitlab/bin/

4. gitlab 安装、项目创建

进入以下界面

4. gitlab 安装、项目创建

输入指令,进行操作

irb(main):003:0> u=User.all                                                      # 查看所有用户id
=> #<ActiveRecord::Relation [#<User id:1 @root>]>
irb(main):004:0> u=User.where(id:1).first # 切换用户,根据用户id来切换。 用户id根据
=> #<User id:1 @root>
irb(main):005:0> u.password='' # 修改用户密码
=> ""
irb(main):006:0> u.password_confirmation='' # 再次确认密码
=> ""
irb(main):007:0> u.save! # 保存, 注意 “!”
Enqueued ActionMailer::DeliveryJob (Job ID: 86ba7806-bfcf-41c2-83e1-d16e55bfdabd) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007efc7433eee8 @uri=#<URI::GID gid://gitlab/User/1>>
=> true # 出现true 就是OK的

实际操作。

4. gitlab 安装、项目创建

添加团队 

创建团队,在管理域里面。

4. gitlab 安装、项目创建

点击团队

4. gitlab 安装、项目创建

建立项目名称  。

授权有3种形式:

1. private :  私人项目,需要授权的用户才能访问这个组。(一般都是选这个。)

2. internet: 只需要有账号登录这个git-lab,就能访问这个组。

3. public: 公开项目。 只要能访问git-lab网页 。 都能访问这个组。

4. gitlab 安装、项目创建

然后点击创建 。

4. gitlab 安装、项目创建

这样组就创建成功了 。然后我们需要创建用户。来加入到这个组。

4. gitlab 安装、项目创建

添加用户

点击 Admin Area。 New users。

4. gitlab 安装、项目创建

然后根据提示 设置 就可以了,这三项必填。邮箱无需真实地址。

4. gitlab 安装、项目创建

这个用户的项目限制,按照实际情况来 。

4. gitlab 安装、项目创建

密码栏,默认没有设置。

4. gitlab 安装、项目创建

当上面三项填完之后。 直接创建就可以了。

4. gitlab 安装、项目创建

然后再次进到admin area。可以看到多了一个用户。  直接点进去。

4. gitlab 安装、项目创建

然后点击edit。

4. gitlab 安装、项目创建

就可以修改密码了。

4. gitlab 安装、项目创建

给用户授权

就是将用户加到这个组里面

再次点开 前面 pro1这个组的界面

admin area

4. gitlab 安装、项目创建

点击创建的组

4. gitlab 安装、项目创建

然后我们添加用户

4. gitlab 安装、项目创建

以及授予他角色,这边的 maintainer  就是维护这个项目的权限。相当于以前老版的master。

4. gitlab 安装、项目创建

然后点击加入之后。我们可以看到。组里面的 团建成员有增加。

4. gitlab 安装、项目创建

点击这边可以修改组成员的权限 。

4. gitlab 安装、项目创建

然后继续点击就行了。

4. gitlab 安装、项目创建

创建git库

4. gitlab 安装、项目创建

点进去之后,选择团队。  然后给项目起名字就ok了。

4. gitlab 安装、项目创建

项目,有继承组的授权模式。 然后点击create。

4. gitlab 安装、项目创建

创建完成。

4. gitlab 安装、项目创建

创建完成之后,我们可以看到一些信息。

有2中访问形式, ssh和  http的 。  访问方式是不同的 。

4. gitlab 安装、项目创建

至此 项目创建完成。