Centos8安装GitLab14.2开源代码托管工具

Posted シ゛甜虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos8安装GitLab14.2开源代码托管工具相关的知识,希望对你有一定的参考价值。

        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'
    
     #or
    
     user = User.find(123)
    
     #or
    
     user = 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界面,😅,原来的访问地址是http的,改完还是访问不了把防火墙关掉即可

关闭防火墙

1、临时关闭,代码为【systemctl stop firewalld】;

2、禁止开机启动,代码为【systemctl disable firewalld】。

gitlab-ctl stop --停止服务,修改访问地址

gitlab-ctl reconfigure  --配置服务

gitlab-ctl start --启动所有GitLab组件

访问

 GitLab界面

第三章、管理员用户取得

获取/修改超级管理员root的密码

如果默认没有创建,可以自己创建然后将其改为管理员,不过不建议这样做

注册需要管理员审批

切换目录:cd /opt/gitlab/bin

执行:gitlab-rails console production 命令 开始初始化密码,如果出现rails console [options]

使用gitlab-rails console -e production

u=User.where(id:1).first # u定义为root用户
u.password='你的密码' # 设置root密码, 注意需要符合密码强度
u.password_confirmation='你的密码' # 确认当前密码
u.save! # 保存操作
quit # 退出交互界面

自己装了gitlab但是破天荒的竟然没有默认的管理员root,是因为manage_accounts['enable'] = false自己注册的root用户是普通用户,那就尝试把普通用户升级为管理员,方法如下:

使用root 用户登录gitlab服务器。
查看数据库配置信息 cat /var/opt/gitlab/gitlab-rails/etc/database.yml
登录用户 su - gitlab-psql
连接库 psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
查询用户 select * from users where email = ‘313105910@qq.com’;       // 注意,分号不要忘了
更新为管理员 update users set admin=‘t’ where id = 普通用户ID;     // 注意,分号不要忘了

执行命令gitlab-ctl console测试发邮件,进入控制台之后执行命令 

Notify.test_email('guoliang.song@joy.com', 'title', 'content').deliver_now

第四章、卸载GitLab

第五章、使用第三种方式重新安装

只配置下面2个功能

external_url 'https://10.0.0.24:3456'
gitlab_rails['initial_root_password'] = "123456"
manage_accounts['enable'] = true
gitlab_rails['store_initial_root_password'] = true

gitlab-ctl reconfigure  --配置服务

gitlab-ctl start --启动所有GitLab组件

初始密钥

使用此密钥登录后,修改密码,设置成中文看起来舒服些

第六章、Visual Studio 2019使用GitLab同步代码

先注册一个用户,发现注册的用户,没有地方可以批准,换成谷歌浏览器就有了,坑啊

管理员批准

切换用户登录

创建一个空白项目,自述文件初始此仓库不勾选

按照这里的提示把工程提交上去​​​​​​​

git config --global user.name "用户名"
git config --global user.email "右键"
创建一个新存储库
git clone http://10.0.0.24/用户名/xxx.git
cd 项目目录
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

现有的文件夹
cd 项目目录
git init
git remote add origin http://10.0.0.24/用户名/xxx.git
git add .
git commit -m "Initial commit"
git push -u origin master

现有的Git存储库
cd 项目目录
git remote rename origin old-origin
git remote add origin http://10.0.0.24/用户名/xxx.git
git push -u origin --all
git push -u origin --tags

这里需要安装

下载地址https://www.git-scm.com/download/win 

如果提示SSL certificate problem: self signed certificate说明我的证书认证失败了

需要配置下git config --global http.sslVerify false关闭SSL的认证

提交成功了

 代码已经提交上去了

用Visual Studio 2019打开项目修改下文件,然后提交测试一下,OK,一切都正常

以上是关于Centos8安装GitLab14.2开源代码托管工具的主要内容,如果未能解决你的问题,请参考以下文章

GIT系列——centos8环境下搭建GitLab代码仓库管理服务

Gitlab详细安装

Gitlab的安装搭建

GIT系列——GitLab使用实战

gitlab

Gitlab的介绍