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的用户,然后手动更改用户的密码。
用于Omnibus安装
sudo gitlab-rails console
从源头安装
sudo -u git -H bundle exec rails console -e production
若要退出控制台,请键入:quit
.
-
通过用户名、用户ID或电子邮件ID查找用户:
user = User.find_by_username 'exampleuser' #or user = User.find(123) #or user = User.find_by(email: 'user@example.com')
-
重置密码
user.password = 'secret_pass' user.password_confirmation = 'secret_pass'
-
当使用此方法而不是用户API,GitLab向用户发送一封电子邮件,声明用户更改了他们的密码。如果管理员更改了密码,请执行以下命令,通过电子邮件通知用户:
user.send_only_admin_changed_your_password_notification!
-
保存更改:
user.save!
-
退出控制台,然后尝试使用新密码登录。
还可以使用用户API.
密码重置似乎不起作用
如果您无法使用新密码登录,可能是因为再确认特征.
尝试在Rails控制台上修复这个问题。例如,如果您的新root
密码不起作用:
-
使用上述任何方法查找用户并跳过重新确认:
user = User.find(1) user.skip_reconfirmation!
-
再试一次登记。
重置根目录密码
上述步骤也可用于重置根密码。
在没有手动更改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开源代码托管工具的主要内容,如果未能解决你的问题,请参考以下文章