当前位置:   article > 正文

Ubuntu20.04安装gitlab(还有简单使用)_linux ubuntu系统布置私有gitlib

linux ubuntu系统布置私有gitlib

今天先不更数据库了,这两天也在网上看了一些搭建gitlab的方法,自己去搭建了一下,写一下算是比较完整的搭建步骤(还有简单使用)吧

欢迎评论补充//(^v^)//


目录

gitlab简介

gitlab下载

 安装deb文件

gitlab常用命令 

gitlab配置

 修改ip端口

 gitlab优化

 修改时区

gitlab使用

 设置语言

 修改密码

 添加用户

 1.通过管理员创建用户

 2.在登录界面创建用户

 创建群组

 添加成员进群组

 管理群组成员权限

 创建项目

 分支管理

使用git bash工具

下载git bash

第一次上传代码

 第二次上传代码

权限管理 

卸载gitlab


gitlab简介

gitlab是一款开源的代码仓库管理系统,它结合了Git作为代码管理和Web服务的特点。该平台支持自托管的Git项目仓库,可以通过Web界面对公众或私人项目进行访问。GitLab的核心功能包括代码仓库管理、项目管理、持续集成等,旨在简化软件开发过程中的协作流程。

特点:

  使用Ruby on Rails框架构建,快速且安全稳定。

  支持团队内部的代码和文档管理,适用于软件开发中的群组和工程项目。

  提供免费的公共和私有存储库、问题跟踪和Wiki功能。

  允许用户通过Web界面访问和管理项目,无需下载客户端软件。

版本信息:

  有Community Edition(CE),这是一个完全免费的版本,适合个人和小团队使用。

  Enterprise Edition(EE),是为企业和大型组织定制的商业版本。

  Operations Managed(OM),这是包含了额外软件的完整版,如nginx、redis等,通常是通过RPM包提供。

与其他平台的比较:

  与GitHub相比,GitLab提供了相似的功能,并且可以管理团队的访问权限,同时提供文件的版本历史库。

  除了代码仓库管理的核心功能,还包括议题、持续集成、Wiki等其他项目管理模块。


gitlab下载


gitlab下载链接(选择ce完全免费的版本):gitlab/gitlab-ce - Packages · packages.gitlab.com

选择版本前先查看一下虚拟机版本信息:

  1. test@ubuntu:~$ lsb_release -a
  2. No LSB modules are available.
  3. Distributor ID: Ubuntu
  4. Description: Ubuntu 20.04 LTS
  5. Release: 20.04
  6. Codename: focal

 ubuntu20.04选择gitlab-ce_16.5.8-ce.0_amd64.deb ubuntu/focal

ps:ubuntu/focal 适用于 ubuntu 20系列,ubuntu/bionic 适用于 ubuntu 18 系列


复制命令进入ubuntu系统中拉取deb(联网,嗯不开代理拉取很慢。。。)

sudo wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_16.5.8-ce.0_amd64.deb/download.deb


 安装deb文件

sudo dpkg -i gitlab-ce_16.5.8-ce.0_amd64.deb

 ps:安装deb文件时报了一个错,以下是我的解决步骤,找到锁文件并杀掉占用进程,解决

  1. dpkg: error: dpkg frontend lock is locked by another process
  2. test@ubuntu:~$ sudo lsof /var/lib/dpkg/lock
  3. lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
  4. Output information may be incomplete.
  5. lsof: WARNING: can't stat() fuse file system /run/user/1000/doc
  6. Output information may be incomplete.
  7. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  8. unattende 111740 root 11uW REG 8,5 0 677189 /var/lib/dpkg/lock
  9. test@ubuntu:~$ kill -9 111740
  10. -bash: kill: (111740) - Operation not permitted
  11. test@ubuntu:~$ sudo kill -9 111740
  12. test@ubuntu:~$ sudo rm /var/lib/dpkg/lock
  13. test@ubuntu:~$ sudo dpkg --configure -a

 安装完成


gitlab常用命令 

我们来先了解一下常用命令

  1. #gitlab配置文件位置
  2. /etc/gitlab/gitlab.rb
  3. #停止gitlab
  4. sudo gitlab-ctl stop ​
  5. #重载gitlab配置文件
  6. sudo gitlab-ctl reconfigure ​
  7. #重启所有gitlab组件
  8. sudo gitlab-ctl restart ​
  9. #启动所有gitlab组件
  10. sudo gitlab-ctl start
  11. #查看运行状态
  12. sudo gitlab-ctl status
  13. #开机自启
  14. sudo systemctl enable gitlab-runsvdir.service

gitlab配置

修改ip、优化、时区设置可以一起修改配置文件然后重载配置文件就可以了,我是分开演示

sudo gitlab-ctl reconfigure的操作可以放在配置完了一起做,开机自启也可以最后做


 修改ip端口

修改配置文件gitlab.rb,搜索注释掉的nginx['listen_port'],修改为****端口(端口与上面external_url 的端口保持一致;域名的话本机需要配映射,没配就用本机ip访问)

  1. sudo vim /etc/gitlab/gitlab.rb
  2. #在32行,修改成自己需要的
  3. external_url '192.168.0.120:10099'
  4. #1.在1654行
  5. nginx['listen_port'] = 10099
  6. #2.也可以用sed直接修改(2选1)
  7. sudo sed -i "s/^.*nginx\['listen_port'\].*$/nginx['listen_port'] = 10099/" /etc/gitlab/gitlab.rb

保存并重新载入配置文件

sudo gitlab-ctl reconfigure

 设置开机自启动

sudo systemctl enable gitlab-runsvdir.service

查看gitlab状态,出现以下内容就算成功

  1. test@ubuntu:~$ sudo gitlab-ctl status
  2. run: alertmanager: (pid 62969) 42s; run: log: (pid 61070) 65s
  3. run: gitaly: (pid 62846) 45s; run: log: (pid 50013) 156s
  4. run: gitlab-exporter: (pid 62887) 44s; run: log: (pid 59350) 82s
  5. run: gitlab-kas: (pid 50636) 147s; run: log: (pid 50821) 144s
  6. run: gitlab-workhorse: (pid 62795) 45s; run: log: (pid 58273) 102s
  7. run: logrotate: (pid 49155) 171s; run: log: (pid 49321) 169s
  8. run: nginx: (pid 58396) 98s; run: log: (pid 58428) 97s
  9. run: node-exporter: (pid 62840) 45s; run: log: (pid 59047) 89s
  10. run: postgres-exporter: (pid 62996) 42s; run: log: (pid 61302) 60s
  11. run: postgresql: (pid 50142) 153s; run: log: (pid 50493) 150s
  12. run: prometheus: (pid 62946) 43s; run: log: (pid 59905) 71s
  13. run: puma: (pid 57713) 116s; run: log: (pid 57866) 113s
  14. run: redis: (pid 49547) 165s; run: log: (pid 49714) 162s
  15. run: redis-exporter: (pid 62899) 44s; run: log: (pid 59611) 77s
  16. run: sidekiq: (pid 58025) 110s; run: log: (pid 58053) 109s

 gitlab优化

我将配置了内存优化运行与没有优化之间做个如图对比,gitlab还是很占内存的

 在/etc/gitlab/gitlab.rb中添加如下内容(温馨提示:vim中两次GG(shift+gg)跳转最后一行)

  1. # 减少数据库缓存
  2. postgresql['shared_buffers'] = "64MB"
  3. # 减少数据库并发数
  4. postgresql['max_worker_processes'] = 4
  5. # 禁用puma cluster模式,可以减少100-400MB占用
  6. puma['worker_processes'] = 0
  7. # 减少sidekiq并发数
  8. # sidekiq['concurrency'] = 2
  9. sidekiq['max_concurrency'] = 2
  10. # 禁用监控
  11. prometheus_monitoring['enable'] = false
  12. # 减少gitlab_rails组件的内存消耗
  13. gitlab_rails['env'] = {
  14. 'MALLOC_CONF' => 'dirty_decay_ms:500,muzzy_decay_ms:500'
  15. }

保存然后重新载入配置文件,设置完成

 sudo gitlab-ctl reconfigure

 修改时区

gitlab默认时区是UTC,我们要改成中国的时区(如有需要)

sudo vim /etc/gitlab/gitlab.rb

 输入

/# gitlab_rails

timezone
= 'UTC'

查找该行,然后将注释去掉,UTC改成Asia/Shanghai

 保存然后重新载入配置文件,设置完成

 sudo gitlab-ctl reconfigure

gitlab使用

 访问刚才配置文件里配置的域名端口(电脑没配置映射,用ip直接访问了。。)


接下来我们登录,默认会创建root用户,密码在/etc/gitlab/initial_root_password

该密码会在24小时后失效,所以后面会修改密码

  1. test@ubuntu:~$ sudo cat /etc/gitlab/initial_root_password
  2. # WARNING: This value is valid only in the following conditions
  3. # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
  4. # 2. Password hasn't been changed manually, either via UI or via command line.
  5. #
  6. # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
  7. Password: HXdPbUm1fk+5GogEzffBgNEj5DPWUf6853THOUPnsZA=
  8. # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

用root和密码登录


 设置语言

点击头像,选择偏好

 以下设置好然后点save changes保存,然后刷新页面即可


 修改密码

点击头像然后切换旧版导航栏(新版没找到管理员在哪儿。。。)

 切换旧版后,点击如图图标,点击管理员

 选择用户,然后编辑(添加新用户的界面也在这儿)

 输入密码即可

然后要求重新登录


 添加用户

添加用户页面操作有两种方式


 1.通过管理员创建用户

管理员中点击用户然后点击新用户

 设置好名称用户名电子邮箱、访问级别和其他选项后点击创建即可

ps:邮箱我随意设置的(我没用到邮箱);如果内网要使用邮箱的话,请搭建邮箱服务器

 然后再次点击用户,进行修改密码的操作

 保存更改,然后我们使用test用户进行登录,新用户登录仍需要重设置密码(可以与旧密码相同)

 设置完成,然后我们返回root用户


 2.在登录界面创建用户

 

 创建完成后需要管理员用户来进行批准才可使用

点击用户然后找到等待批准,点击批准,然后就注册完成可以使用了


 如果不希望除管理员外的人员创建用户,则可以进行以下操作

将通用设置中的注册限制,启用注册功能的勾给去掉(记得向下滑找到点击保存修改!)

 返回登录界面,登录界面的注册功能已去除

 创建群组

点击群组,然后新建群组


 设置群组名称,选择可见性,其它设置可选,然后点击新建即可完成


 添加成员进群组

点击刚才创建的群组

 点击邀请同事,然后输入用户名即可


 管理群组成员权限

在管理员中选择群组,找到管理权限


 选择权限

权限说明

  1. Guest(访客):

    • 访客拥有最低的权限级别,通常是公开项目的非注册用户或者已注册用户没有被授权访问的私有项目的用户。
    • 访客只能查看项目和问题,但不能执行其他操作,例如修改代码或创建问题等。
  2. Reporter(报告者):

    • 报告者拥有读取和评论项目的权限,但不能修改代码或项目设置。
    • 报告者可以查看项目的代码、问题、合并请求等,并且可以添加注释和标签,但不能对这些内容进行更改。
  3. Developer(开发者):

    • 开发者是项目的主要贡献者之一,具有修改代码、创建分支、提交合并请求等权限。
    • 开发者可以修改项目的代码、创建新分支、提交合并请求并将更改合并到主分支中。
  4. Maintainer(维护者):

    • 维护者是项目的管理者,拥有对项目的完全访问权限,可以修改项目设置、添加新成员、合并合并请求等。
    • 维护者可以对项目进行所有操作,包括创建、修改、删除代码、分支、合并请求、标签等。
  5. Owner(所有者):

    • 所有者是拥有项目的最高权限用户,通常是创建项目的用户。
    • 所有者具有维护者的所有权限,同时还可以管理项目的访问级别(公开、私有)、删除项目等。


 创建项目

创建好群组后然后点击新建空白项目,设置好项目名称、可见性和其它设置点击新建即可


 分支管理

创建好项目后,当前会有一个main主分支,我们可以选择新建分支,然后输入分支名称即可

 现在就有两个分支了


我们点击仓库,分支,然后点击查看分支规则

 找到受保护分支,这里我们可以选择添加保护的分支;可以设置角色权限来对分支保护

 设置完成即可(我这里让test分支可以让开发者进行上传与合并,main分支则不让开发者进行合并)


注:对于项目的管理,可以设置主分支只让主要管理者才可以合并,其他开发人员创建自己的分支进行上传代码和合并代码,要与主分支合并可以提出合并请求经过审核才能合并


使用git bash工具


下载git bash

下载地址:Git - Downloads

选择windows,下载好后都默认直接安装即可


第一次上传代码

选择自己要上传的代码目录下,右键鼠标选择open Git Bash here(安装好git后自动会有)

 然后去项目中查找http链接,复制链接

 在刚才打开的git bash终端设置用户名、邮箱

  1. #设置用户名、邮箱为gitlab上设置的邮箱
  2. git config --global user.name "yourname@yourgilab.com"
  3. git config --global user.email "youremail@yourgitlab.com"

设置好然后git config --global --list查看 


然后输入

  1. #刚才复制的http链接
  2. git clone http://192.168.0.120:10099/kaifa_group/test_project.git

然后cd进目录 

将我们要上传的代码放入这个文件夹(test_project)


 然后把目录下的所有文件上传到git

git add .

 提交信息

git commit -m "你的描述"

推送项目到GitLab

git push <链接(orgin是别名)> <本地仓库>:<远程分支>

git push origin main:test_branch

 去网页分支中查看一下,上传成功


 第二次上传代码

在刚才已有的克隆的目录下,新增一个txt作为测试


 右键打开git bash

输入git status我们可以看到红色的未上传的部分

 git init初始化


 上传文件(和第一次上传一样)git add .

提交信息

git commit -m "你的描述"

推送项目到GitLab

git push origin main:test_branch


上传完成


权限管理 

之前对于主分支我们只允许Maintainers可以上传与合并,而对test_branch分支则允许了developer上传和合并,从这里可以看出test用户(developer)是无法上传主分支的(推送到远程存储库时被拒绝,预接收钩子 (pre-receive hook) 强制执行某些策略或检查,以确保不允许对存储库进行不合规的更改)


 可以使用sourcetree管理分支上传代码


卸载gitlab

算是卸载干净了,再次安装也没有问题

  1. #停止gitlab
  2. sudo gitlab-ctl stop
  3. #卸载服务
  4. sudo gitlab-ctl uninstall
  5. #清除相关数据
  6. sudo gitlab-ctl cleanse
  7. #清除账号数据
  8. sudo gitlab-ctl remove-accounts
  9. #删除安装包
  10. sudo dpkg -P gitlab-ce
  11. 查询剩余文件进行删除
  12. find / -name "gitlab"

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/682403
推荐阅读
相关标签
  

闽ICP备14008679号