GitLab安装与配置

news/2025/1/10 8:53:02/文章来源:https://www.cnblogs.com/98kk/p/18663229

由于图片和格式解析问题,为了更好阅读体验可前往 阅读原文

对于gitlab的安装本人都是在arm架构Centos7.9虚拟机上进行的,请悉知本人安装环境,或者与本人的环境保持一致,以便产生不必要的疑惑

这里使用docker安装Gitlab,机器上需要先安装docker,如果你还不知道docker,可以先看看我的往期docker文章;如果你直接在Linux机器上安装,可以参考Linux Install;如果你已经用上了k8s,可以参考Helm chart;

📷查看更多优质文章

image

# arm架构镜像(如果你也是arm架构,可以使用此镜像)
docker pull yrzr/gitlab-ce-arm64v8# 最新版amd架构(非arm架构)
docker pull gitlab/gitlab-ee

配置并启动

# 下载好后使用docker engine 运行gitlab
sudo docker run -d \--hostname gitlab.ihengshuai.com \--publish 443:443 --publish 80:80 --publish 8422:22 \--name gitlab \--restart always \-v /srv/gitlab/config:/etc/gitlab \-v /srv/gitlab/logs:/var/log/gitlab \-v /srv/gitlab/data:/var/opt/gitlab \--shm-size 512m \yrzr/gitlab-ce-arm64v8# IP
sudo docker run -d \--hostname 192.168.10.10 \--publish 443:443 --publish 80:80 --publish 8422:22 \--name gitlab \--restart always \-v /srv/gitlab/config:/etc/gitlab \-v /srv/gitlab/logs:/var/log/gitlab \-v /srv/gitlab/data:/var/opt/gitlab \--shm-size 512m \yrzr/gitlab-ce-arm64v8

命令式

  1. 首先创建挂载卷

    mkdir -p /srv/gitlab
    cd /srv/gitlab && mkdir config data logs
    
  2. 运行gitlab容器

    sudo docker run -d \--hostname 192.168.10.10 \-p 443:443 --publish 80:80 --publish 8422:22 \--name gitlab \--restart always \-v /srv/gitlab/config:/etc/gitlab \-v /srv/gitlab/logs:/var/log/gitlab \-v /srv/gitlab/data:/var/opt/gitlab \--shm-size 512m \yrzr/gitlab-ce-arm64v8
    

相关参数说明:

  • hostname:指定gitlab的ip地址,用于浏览器的访问(域名访问看后面),这里指定虚拟的ip192.168.10.10
  • -p:暴露gitlab的httphttpsssh端口,这里http使用主机的80端口,需要注意主机是否占用80端口;https使用主机443端口,同样注意端口占用;由于虚拟机占用了ssh端口22,这里使用8422端口作为gitlab的ssh端口
  • -v:挂载gitlab的相关配置到主机,方便修改配置

当执行上面命令后,根据自己机器的配置等待一段时间,便会启动成功,你可以查看启动日志:

docker logs -f gitlab

通常出现以下情况启动成功:

image-20230316181606466

浏览器进行访问:

image-20230319160426583

默认账户是root,密码可以从下文得知

配置文件安装

此方式使用docker-compose配置文件安装,你可以根据自己的需求来选择安装方式,相关配置参数此处不做解释。

version: '3.6'
services:web:image: 'yrzr/gitlab-ce-arm64v8'restart: alwayshostname: '192.168.10.10'ports:- '80:80'- '443:443'- '8422:22'volumes:- '/srv/gitlab/config:/etc/gitlab'- '/srv/gitlab/logs:/var/log/gitlab'- '/srv/gitlab/data:/var/opt/gitlab'shm_size: '256m'

然后运行此配置文件

docker compose -d up .

后续内容同上

密码

在gitlab搭建好后,需要查看root账户的初始密码,当一些密码忘记后,也可以重置密码

  1. 查看root初始

    # 查看root初始密码
    sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
    

​ 其实gitlab的初始密码就存储在/etc/gitlab/initial_root_password这个文件里,由于我们挂载了卷,你也可以在宿主机上查看。

  1. 重置密码,这里以root账户为例,修改数据库重置(实际情况对于root账户没忘的话,可以用root账户重置其它账户的密码)

    # https://docs.gitlab.cn/jh/security/reset_user_password.html
    # 进入gitlab容器中
    docker exec -it gitlab bash# 使用gitlab-rails
    gitlab-rails console -e production# id为1的是root
    user = User.where(id: 1).first
    user.password = 'xxxxx'
    user.password_confirmation = 'xxxx'
    user.save# 保存退出后,如果登不上,则需要重载配置
    

域名与证书

gitlab除了可以使用ip地址外,也可以自定义域名,也可以使用https,并认证自签证书,整个过程主要分为以下步骤:

  • 添加域名:可以使用本机DNS映射域名
  • 使用https:可选,如果你需要https
  • 配置证书:可选,如果你启用了https,需要提供证书,你可以使用自签证书并信任
  • 重载配置

以上相关配置都是在gitlab.rb配置文件中修改的,你可以在宿主机的 /srv/gitlab/config/gitlab.rb文件中进行修改,或进入容器中修改/etc/gitlab/config/gitlab.rb,二者是等价的。

配置域名

# vim /srv/gitlab/config/gitlab.rb# 使用域名 https://gitlab.ihengshuai.com (这里使用了https),域名自行修改
external_url 'https://gitlab.ihengshuai.com'

在你的主机上添加HOST记录,进行映射

# vim /etc/hosts192.168.10.10 gitlab.ihengshuai.com

开启https

# vim /srv/gitlab/config/gitlab.rbnginx['client_max_body_size'] = '250m'
# 强制HTTPS
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80

ssl证书配置

当你开启了https需要配置ssl证书(如果没有可以跳过),你可以使用相关云厂商(阿里云、腾讯云...)提供的免费证书,也可以自签证书。

  1. 生成证书,下面以OpenSSL自签证书为例:

    # 使用OpenSSL签发证书
    # 1. 生成服务器私钥 (domain.com.key)  domain.com 随便起的名字
    openssl genrsa -out domain.key 4096# 2.生成证书签名请求(CSR) domain.com.csr
    # 生成 CSR 的过程中,会提示输入一些信息,其中一个提示是 Common Name (e.g. YOUR name),
    # 这个非常重要,这一项应填入 FQDN(Fully Qualified Domain Name)完全合格域名/全称域名,
    # 如果您使用 SSL 加密保护网络服务器和客户端之间的数据流,
    # 举例被保护的网站是 https://test.chinacloudsites.cn,
    # 那么此处 Common Name 应输入 test.chinacloudsites.cn
    openssl req -new -key domain.key -out domain.csr# 3.使用上一步的证书签名请求签发证书
    openssl x509 -req -days 365 -in domain.csr -signkey domain.key -out domain.crt
    

    将以上的domain替换成你想都要的域名如:gitlab.example.com

    这里我写成了一个脚本:

    # auto-cetificate.sh
    #!/bin/bash
    echo "请使用sudo运行以获取系统权限!"
    echo "请输入域名:"read userdomain# 啥都不输退出
    if [ ! "$userdomain" ]; thenexit
    fiopenssl genrsa -out $userdomain.key 4096openssl req -new -key $userdomain.key -out $userdomain.csropenssl x509 -req -days 365 -in $userdomain.csr -signkey $userdomain.key -out $userdomain.crtecho
    echo "Generate success!"
    echo# 将本地域名写入host
    echo 需要将域名写入host吗[yes/no]?
    read confirm_read_host
    if [ "$confirm_read_host" != "yes" ]; thenexit
    fiecho 需要保持和证书域名相同不[yes/no]?
    read confirm_write_host
    if [ "$confirm_write_host" == "no" ]; thenecho 请填写待写入host的域名read custom_host_domaincp /etc/hosts /etc/hosts.oldecho "127.0.0.1 $custom_host_domain" >>/etc/hostsexit
    ficp /etc/hosts /etc/hosts.old
    echo "127.0.0.1 $userdomain" >>/etc/hosts
    echo "Write success!"
    sleep 1
    

    当创建完以上文件后,需要将其加权限,然后执行脚本即可:

    chmod +x ./auto-cetificate.sh# 执行
    ./auto-cetificate.sh
    

    执行后根据提示一步一步填写相关内容

  2. 配置证书

    # vim /srv/gitlab/config/gitlab.rb# https证书
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/domain.crt"
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/domain.key"
    # 用默认
    nginx['ssl_ciphers'] = xxx# 需要关闭这个
    letsencrypt['enable'] = false
    

    这里的domain改为你自己生成的域名,以上需要使用.key和.crt两个文件,你可以把相关文件移至/srv/gitlab/ssl,这里容器中gitlab的位置为/etc/gitlab/ssl

当以上工作都做好了,需要重启加载配置并重新启动便会配置成功(这里可以看下一小节)

最后使用https和域名访问,由于自签证书不安全,你需要忽略安全提示即可

image-20230319165605394

image-20230319165636779

至此https配置成功了

配置重载

重载配置有两种:在外部直接docker restart和进入容器中使用gitlab-ctl进行重新启动

  1. 外部重启

    docker restart gitlab
    
  2. 进入容器中

    # 进入容器
    docker exec -it gitlab bash# 1.使用gitlab-ctl重启加载配置
    gitlab-ctl reconfigure
    #日志...(up to date)
    Recipe: gitlab::gitlab-rails* execute[clear the gitlab-rails cache] action run- execute /opt/gitlab/bin/gitlab-rake cache:clear
    Recipe: nginx::enable* runit_service[nginx] action restart (up to date)
    Recipe: monitoring::grafana* runit_service[grafana] action restart (up to date)Running handlers:
    Running handlers complete
    Chef Infra Client finished, 9/735 resources updated in 20 seconds
    gitlab Reconfigured!# 2.重新启动
    gitlab-ctl restart
    

这里推荐使用第二种方式

Centos安装

这里我的虚拟机为Centos7.9 arm架构系列

后续更新...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/867004.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何判断 PbootCMS 网站是否容易被黑

检查 URL 的鲁棒性正常情况:当您访问一个不存在的页面时,网站应该返回 404 错误页面。 异常情况:如果在 URL 后面添加任意字符串(如 http://www.xxxxxx.com/news/aaa.bbb),网站仍然能够打开而没有跳转到 404 错误页面,这表明网站可能存在安全漏洞,容易被黑。测试方法选…

通过百度搜索判断网站是否已经被黑

使用百度搜索打开百度搜索,输入 site:www.xxxxxx.com(将 www.xxxxxx.com 替换为您的域名)。 查看搜索结果,检查是否包含非法网站内容或与您的网站无关的内容。异常情况如果搜索结果中包含非法网站内容、恶意链接或其他与您的网站无关的内容,说明您的网站可能已经被黑。三、…

定期更新 PbootCMS 到最新版本,确保系统安全

定期更新更新 PbootCMS:定期更新 PbootCMS 到最新版本,确保系统安全。 更新插件:定期更新所有插件和扩展,确保没有已知的安全漏洞。开启伪静态配置伪静态规则:确保伪静态模式已开启,并配置正确的伪静态规则,防止 URL 被恶意利用。使用 HTTPS启用 SSL 证书:使用 SSL 证书…

bat命令怎么写

批处理脚本(Batch Script)是Windows操作系统中的一种脚本语言,使用.bat或.cmd文件扩展名。以下是一些基本的批处理命令示例:输出文本echo Hello, World!创建目录mkdir newfolder删除文件del filename.txt删除目录rmdir /s /q foldername/s 删除目录树(包括子目录和文件) …

PbootCMS后台编辑器应该能够正确保存div标签,而不会自动将其转换为p标签

请检查以下几点:文件权限:确保您修改的文件具有正确的读写权限。 文件版本:确认您正在修改的是正确的文件版本,有时文件可能被覆盖或存在多个版本。 其他插件或自定义代码:检查是否有其他插件或自定义代码影响了编辑器的行为。如果问题依然无法解决,建议联系PbootCMS的技…

未匹配到本域名(www.xxxx.com)有效授权码,请到PbootCMS官网免费获取

针对PbootCMS提示“未匹配到本域名(www.xxxx.com)有效授权码”的问题,您可以按照以下步骤操作来解决:访问授权码获取页面:访问PbootCMS官网的授权码获取页面打开浏览器,输入域名和验证码:在授权码获取页面中,输入您的域名(例如:www.xxxx.com)。 输入页面中显示的验证码…

针对PbootCMS出现“您访问的页面不存在,请核对后重试”的问题排查和解决:

针对PbootCMS出现“您访问的页面不存在,请核对后重试”的问题,可以按照以下步骤进行排查和解决:确认程序上传是否完整:确保所有PbootCMS文件已完整上传到服务器。 可以通过FTP客户端或服务器管理面板检查文件完整性。配置伪静态规则:PbootCMS程序根目录下的rewrite文件夹中…

IINA 音视频播放软件 for Mac

IINA 音视频播放软件 for Mac IINA mac版,是一款视频播放器,可以加载本地文件或提供视频URL,IINA mac可以使用所有流行的媒体格式。而且您可以快速更改界面主题,调整默认行为和用户界面,决定是否要自动加载字幕,配置新的键绑定等。

DBeaverEE for Mac 数据库管理工具软件

DBeaverEE for Mac 数据库管理工具软件 DBeaverEE 是一款功能强大的数据库管理工具,支持多种数据库类型,包括 MySQL、Oracle、PostgreSQL 等。它是 DBeaver 社区版的商业版本,在社区版的基础上增加了更多高级特性和技术支持。DBeaverEE 提供了直观易用的用户界面,可以轻松地…

gitlab ci

由于现在大多数公司使用私有化 git 仓库产品时一般选择 gitlab,所以借助其提供的 gitlab ci 功能来做 CI (Continuous Integration,可持续集成) 任务还是比较普遍的一种选型。本篇文档作为一个 gitlab 的入门教程,会设计到 gitlab runner 和 gitlab-ci.yml 文件的编写两部分…

读数据保护:工作负载的可恢复性31读后总结与感想兼导读

读后总结与感想兼导读1. 基本信息 读数据保护:工作负载的可恢复性[美]W. 柯蒂斯普雷斯顿(W. Curtis Preston) 著机械工业出版社,2023年3月出版1.1. 读薄率 书籍总字数482千字,笔记总字数99991字。 读薄率99991482000≈20.7% 1.2. 读厚方向Data Mesh权威指南数据的边界:隐私…

OpenVX节点执行独立性与测试验证

节点执行独立性 在如图2-5所示例中,客户端根据输入图像、梯度幅度和梯度相位。OpenVX并不要求并行运行,但可以由OpenVX供应商实现。图2-5 具有一些独立节点的简单图形。 构造这种图形的代码,如下所示。 vx_context context = vxCreateContext(); vx_image images[] = {vxCre…