GitLab 是一个用于仓库管理系统的开源项目,由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用Ruby语言写成。后来,一些部分用Go语言重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。

第一章、安装GitLab

安装GitLab有多种方式,这里讲最常用的3种方式,Centos8使用的是8.4版本,无界面最小化安装。

方式一:

安装makecache

yum makecache

配置yum源(使用的是清华大学镜像)

vi /etc/yum.repos.d/gitlab-ce.repo

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

安装GitLab社区版

yum install gitlab-ce #自动安装最新版
yum install gitlab-ce-x.x.x #安装指定版本

确定下载

确定安装

安装完成

方式二:

访问gitlab官网下载安装包到本地安装 地址:https://packages.gitlab.com/gitlab/gitlab-ce 版本是gitlab-ce-14.0.8

 yum install -y gitlab-ce-14.0.8-ce.0.el7.x86_64.rpm

方式三:

1.安装和配置必要的依赖项

在CentOS 8(和RedHat 8)上,下面的命令还将在系统防火墙中打开HTTP、HTTPS和SSH访问。这是一个可选的步骤,如果您只打算从本地网络访问GitLab,则可以跳过它。

sudo dnf install -y curl policycoreutils openssh-server perl
# Enable OpenSSH server daemon if not enabled: sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd
# Check if opening the firewall is needed with: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

接下来,安装后缀以发送通知电子邮件。如果您想使用其他解决方案发送电子邮件,请跳过这一步配置外部SMTP服务器在GitLab安装好之后。

sudo dnf install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

在后缀安装期间,可能会出现配置屏幕。选择“Internet站点”并按Enter键。使用服务器的外部DNS作为“邮件名称”,然后按Enter键。如果出现其他屏幕,请继续按Enter键接受默认值。

2.添加GitLab包存储库并安装该软件包

添加GitLab包存储库。

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

接下来,安装GitLab包。确保你是正确的设置DNS,和变化https://gitlab.example.com访问GitLab实例的URL。安装将自动配置并在该URL上启动GitLab。

https://URL,GitLab将自动用加密方法请求证书,它需要入站HTTP访问和有效主机名。你也可以使用自己的证书或者直接用http://(没有s).

如果要为初始管理员用户指定自定义密码(root),检查文献资料。如果未指定密码,则将自动生成随机密码。

sudo EXTERNAL_URL="https://10.0.0.24:3456" dnf install -y gitlab-ee

3.浏览主机名并登录

除非您在安装过程中提供了自定义密码,否则密码将随机生成,并在/etc/gitlab/initial_root_password。在用户名中使用此密码root登录。

看我们的有关安装和配置的详细说明的文档.

4.设置您的通信首选项。

拜访我们电子邮件订阅偏好中心让我们知道什么时候和你沟通。我们有一个明确的电子邮件选择政策,这样你就可以完全控制我们给你发邮件的内容和频率。

每月两次,我们发送您需要知道的GitLab新闻,包括新特性、集成、文档以及来自开发团队的幕后故事。对于与bug和系统性能相关的关键安全更新,请注册我们的专用安全通讯。

第二章、配置GitLab

默认安装完是无法访问的,需要进行配置,配置文件是/etc/gitlab/gitlab.rb

vi /etc/gitlab/gitlab.rb

远程看配置文件比较麻烦,我们用FileZilla将文件复制到本地进行修改,Cento8的远程端口是22

这个一定要配置,在受LDAP等外部账号管理系统管理的,manage_accounts['enable'] = false没有问题。但是在单机的情况下,这需要设置为true,以便让gitlab在安装时能够创建与管理系统账号。gitlab_rails['store_initial_root_password'] = true,让初始root密码生成在/etc/gitlab/initial_root_password这个文件中

manage_accounts['enable'] = true
gitlab_rails['store_initial_root_password'] = true

我这里使用的是阿里邮箱,所有修改的内容有

external_url 'http://10.0.0.24'
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtpdm.aliyun.com"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "你的邮箱名@aliyun.com"
# gitlab_rails['smtp_password'] = "你的密码"
# gitlab_rails['smtp_domain'] = "你的邮箱名@aliyun.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = false
# gitlab_rails['smtp_pool'] = false

如果你的SMTP服务器不喜欢默认的“From: gitlab@gitlab.example.com”修改如下

### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'qpmon@joy.com'   ## 发件邮箱
gitlab_rails['gitlab_email_display_name'] = 'git server'  ## 显示名字
# gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''

密码所在位置

设置初始密码

介绍在Omnibus GitLab 14.0。

默认情况下,Omnibus GitLab会自动为初始管理员用户帐户生成密码(root)并将其储存到/etc/gitlab/initial_root_password至少24小时。出于安全考虑,24小时后,第一个文件将自动删除该文件。gitlab-ctl reconfigure.

如果在安装过程中,GitLab无法检测到服务器的有效主机名,则不会运行重新配置。

要提供自定义的初始根密码,您有两个选项:

  • 通过GITLAB_ROOT_PASSWORD环境变量到安装命令如果服务器的主机名设置正确。如果在安装期间GitLab不自动执行重新配置,则必须传递GITLAB_ROOT_PASSWORD变量到第一个变量gitlab-ctl reconfigure跑。
  • 在第一次重新配置之前,编辑/etc/gitlab/gitlab.rb(如果不存在,则创建它)并设置:

    gitlab_rails['initial_root_password'] = '<my_strong_password>'
    

这两种方法只适用于第一次重新配置时发生的初始数据库种子。对于随后的重新配置运行,上述两种方法都没有任何效果。在这种情况下,在/etc/gitlab/initial_root_password登录,或重置根密码.

如何重置用户密码

有几种方法可以重置用户的密码。

RAKE任务

介绍在GitLab 13.9。

GitLab提供了一个Rake任务,用于使用用户名重置用户的密码,可以通过以下命令调用这些密码:

sudo gitlab-rake "gitlab:password:reset"

GitLab要求提供用户名、密码和密码确认。给出适当的值后,将更新指定用户的密码。

Rake任务还将用户名作为参数,如下例所示:

sudo gitlab-rake "gitlab:password:reset[johndoe]"

若要重置默认管理密码,请使用用户名运行此Rake任务root,这是该管理帐户的默认用户名。

Rails控制台

Rake任务能够通过用户名找到用户。但是,如果只知道用户的用户ID或电子邮件ID,则可以使用Rails控制台查找使用用户ID的用户,然后手动更改用户的密码。

启动Rails控制台

用于Omnibus安装

sudo gitlab-rails console

从源头安装

sudo -u git -H bundle exec rails console -e production

若要退出控制台,请键入:quit.

  1. 通过用户名、用户ID或电子邮件ID查找用户:

     user = User.find_by_username 'exampleuser'#oruser = User.find(123)#oruser = User.find_by(email: 'user@example.com')
    
  2. 重置密码

     user.password = 'secret_pass'user.password_confirmation = 'secret_pass'
    
  3. 当使用此方法而不是用户API,GitLab向用户发送一封电子邮件,声明用户更改了他们的密码。如果管理员更改了密码,请执行以下命令,通过电子邮件通知用户:

     user.send_only_admin_changed_your_password_notification!
    
  4. 保存更改:

     user.save!
    
  5. 退出控制台,然后尝试使用新密码登录。

还可以使用用户API.

密码重置似乎不起作用

如果您无法使用新密码登录,可能是因为再确认特征.

尝试在Rails控制台上修复这个问题。例如,如果您的新root密码不起作用:

  1. 启动Rails控制台.

  2. 使用上述任何方法查找用户并跳过重新确认:

     user = User.find(1)user.skip_reconfirmation!
    
  3. 再试一次登记。

重置根目录密码

上述步骤也可用于重置根密码。

在没有手动更改root帐户用户名的正常安装中,Rake任务可以与用户名一起使用。root若要重置根密码,请执行以下操作。

如果用户名被更改为其他内容并已被遗忘,一种可能的方法是使用带有用户ID的Rails控制台重置密码。1(在几乎所有的情况下,第一个用户是默认的管理帐户)。

使配置生效

修改好配置文件后,使用gitlab-ctl reconfigure命令重载一下配置文件。

gitlab-ctl reconfigure

如果遇到无限重启

1、按住CTRL+C强制结束;

2、运行:systemctl restart gitlab-runsvdir;

3、再次执行:gitlab-ctl reconfigure

执行gitlab-ctl start运行服务​​​​​​​

一共启动10多个服务

发现无法使用IP登录gitlib界面,

Centos8安装GitLab14.2开源代码托管工具相关推荐

  1. 开源代码托管平台GitCode怎么用?看这篇就够了

    关于GitHub,相信每个程序员都知道,它是一个基于Git实现的在线代码仓库,也是目前最大的代码托管平台.但知道和做到之间往往有道鸿沟,GitHub作为一个外文网站,因为一些众所周知的原因,国内经常无 ...

  2. 爆测一周,22年必看最细致代码托管工具测评

    简介:网上代码托管选型的文章不少,不过大多内容有点久远,很多最新的平台没有包括进来,个人花了大概一个星期的时间,把目前市面上比较火的代码托管平台(开源托管平台:Github.Gitee:企业级托管平台 ...

  3. CSDN 发布开源代码托管平台 GitCode

    2020 年 9 月 10 日,中国专业 IT 开发者社区 CSDN 正式推出全新升级的开源平台 GitCode(gitcode.net).面向国际化市场,具备使用 GitLab 最新高可靠部署方案. ...

  4. 封禁丑闻不断,开源代码托管动了谁的奶酪?

    3月24日传出消息,GitHub封禁了一个属于微软的前端开源项目Aurelia,理由是"项目中有两名来自伊朗的外部贡献者". 作为全球最大的开源软件代码的托管平台,GitHub理应 ...

  5. 程序员必备之——代码托管工具 git

    目录 一.git的安装及本地配置 1.1.git介绍 1.2.git本地安装及配置 1.3.git远程仓库 二.git的命令及使用 2.1.基础命令 三.git的分支 3.1.常用命令 3.2.执行效 ...

  6. 2022年中国代码托管工具真实测评

    相信各位开发者朋友已经接触过不少开源场景的代码托管平台,并借此接触到了很多好的开源项目,这对于开发者个人而言非常友好. 同时,越来越多针对企业.团队的代码管理平台也相继出现,与对个人更友好的代码平台相 ...

  7. 除了GitHub,国内开发者常用的代码托管工具盘点

    贸易战带来的不安彷佛随着时间的流逝而冲淡了,但是相信大家没有忘记,2020年,哈工大以及不少科研单位陆续发现其购买的正版 MATLAB 软件无法使用,这款软件一直以来都是中国工科学生和研究单位绘制论文 ...

  8. docker compose快速按照GitLab代码托管工具以及GitLab基本用法

    Git 与 SVN 区别 GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目.它拥有与 Git ...

  9. Facebook 开源代码分析工具 —— Mariana Trench

    Facebook 的安全团队本周向开源社区揭晓了一个新的开源项目 --Mariana Trench,这是一个用于识别 Android 和 Java 应用程序漏洞的开源工具,Facebook 此前一直在 ...

  10. 基于git和svn的开源代码托管平台

    文章目录 1.基于Git在线托管平台 GitHub & Bitbucket & GitLab & Coding 的对比分析 基本特征 哪个是开源的服务或产品 开源与协作,谁是最 ...

最新文章

  1. WINDOWS下调用GetTokenInformation的奇怪之处--两次调用
  2. 基于ServletJsp的网上书店设计(二)
  3. asp.net控件开发(二)-简单属性
  4. python字符串截取_Python-变量-No3
  5. Python操作MySQL数据库的三种方法
  6. (论坛答疑点滴)DataGrid的EditCommandColumn如何使用图片作为按钮?
  7. c++ 基本排序算法学习
  8. python语言中strike_Python学习笔记
  9. Uncaught ReferenceError: jie is not defined
  10. MATLAB图像处理:一分钟去除图片中的雾霾
  11. 通过改变浏览器Cookie切换当前网站马甲
  12. CC26x2R1笔记(8)CCS9.2 cc26xx环境的搭建
  13. android电视+dlna,如何开启电视dlna功能(最简单最实用的多屏互动)
  14. Dota2 无法连接至steam网络 【已解决】
  15. 互联网快讯:菜鸟加码全球物流网络布局;猿辅导、掌门教育聚焦素质教育
  16. 家长们,居家网课这样做
  17. 火山火花代码编辑框(火花编辑框)Scintilla代码编辑框案例教程
  18. Python正则表达式在线练习(网页版)和离线练习(本地版)
  19. ADB向手机安装APK失败
  20. visualDL(一)scalar标量图

热门文章

  1. ES dynamic mapping(动态映射)
  2. Unity发布VR项目不能唤起VR头盔
  3. 3.单片机 数码管显示
  4. channel is not opened.
  5. Android Studio实现多媒体播放器,音乐视频一体化
  6. 机器学习代码整理pLSA、BoW、DBN、DNN
  7. [Error Msg] The root link_base has an inertia specified in the URDF, but KDL does not support ...
  8. Java 使用POI 给Word添加水印
  9. 互联网创业赚钱规则,彻底释放自己的价值吧!丨国仁网络
  10. 移动apn接入点哪个快_千兆交换机和快速以太网交换机哪个更好呢?