GitLab服务器搭建

news/2024/11/17 19:31:07/

文章目录

    • 前述
    • 方式一:非容器安装
      • 搭建GitLab服务器
      • 查看gitlab用户的初始密码:
      • 修改初始密码
      • gitlab配置文件
      • 修改服务的端口号
      • 启动并访问服务
    • 方式二:容器下安装基于Docker
      • 安装Docker
      • 在容器中安装gitlab服务
      • 宿主机配置修改
      • 容器配置修改
      • 启动并访问服务

前述

一般的公司都不希望将自己的代码托管到公共的代码托管网站,如:github,gitee等,而是自己搭建一个代码托管的服务器来管理代码,所以我们就看看怎么搭建一个自己的代码托管服务器吧

  • 官方网站:https://about.gitlab.com/
  • 官方安装文档:https://gitlab.cn/install?version=ce(你也可以参考这个官方文档搭建)
    在这里插入图片描述

本人使用的是centos7操作系统,使用xshell连接上你的服务器就可以开始安装了,注意,服务器内存大小要在6G-8G左右,因为gitlab服务比较大,服务器内存太小可能会启动失败。

方式一:非容器安装

搭建GitLab服务器

首先使用xshell连接上你的服务器

使用free -m 命令可以查看虚拟机的内存大小,单位是MB(看看内存大小是否够用1GB=1024MB):
在这里插入图片描述

使用su root命令切换到root权限:
在这里插入图片描述

使用命令安装perl包: yum install -y curl policycoreutils-python openssh-server perl

使用命令打开sshd:systemctl enable sshd

使用命令启动sshd:systemctl start sshd

配置镜像源:curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
在这里插入图片描述
开始安装:EXTERNAL_URL="http://192.168.1.103:8081" yum install -y gitlab-jh

  • http://192.168.0.103:该地址为服务器的地址或者域名,如果不知道可以使用ifconfig命令查询,端口号为你的gitlab服务端口号
  • 如果配置错了,也没关系,这个我们后面还可以通过gitlab的配置文件修改
  • 安装完成后会随机生成一个密码(初始密码只有二十四小时的有效期)存储在/etc/gitlab/initial_root_password文件中,安装成功后建议立即修改初始密码,使用修改后的密码和用户名root登录。

注意:配置gitlab服务的端口号的时候要先检查该端口号是否被占用,以及服务器是否开放此端口号,如果没开放该端口号,外面是访问不了你的gitlab服务的。

查看开放的端口号:firewall-cmd --list-all设置开放端口号:sudo firewall-cmd --add-port=8081/tcp --permanent重启防火墙(设置完一定要重启防火墙):firewall-cmd --reload现在外部就可以访问8081端口了

查看gitlab用户的初始密码:

账号为:root

cat /etc/gitlab/initial_root_password|grep password

可以使用账户和密码登录,然后再页面修改初始密码,也可以使用下面的命令行修改密码。

修改初始密码

我们使用命令行的方式:

进入gitlab控制台:
gitlab-rails console切换用户,看到root用户又返回值(返回nil代表空),证明该用户存在:
user = User.where(username: 'admin').first
user = User.where(username: 'root').first修改root用户的密码为123456:
user.password = "123456ldd"保存密码,返回true表示修改成功:
user.save! 退出控制台:
ctrl+z保存并退出控制台

然后就可以使用root+123456ldd登录了

gitlab配置文件

gitlab服务的配置文件:/etc/gitlab/gitlab.rb

修改服务的端口号

修改gitlab服务端口号:vim /etc/gitlab/gitlab.rb
在这里插入图片描述

按 i 开始编辑
编辑完成,按esc退出编辑
按冒号,输入wq保存退出

使用命令进行更新配置:gitlab-ctl reconfigure

注: 这个位置也可以查看配置gitlab服务的ip和端口号:/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
在这里插入图片描述

启动并访问服务

使用命令查看linux中正在运行的服务:netstat -lntp

如果gitlab服务没有启动我们可以通过下面的命令启动或者关闭:

  • 停止gitlab服务:gitlab-ctl stop
  • 启动gitlab服务:gitlab-ctl start

服务启动成功后即可通过http://192.168.1.103:8081访问

在这里插入图片描述

方式二:容器下安装基于Docker

官网教程:https://docs.gitlab.cn/jh/install/docker.html

安装Docker

更新yum源:yum install

安装依赖:yum install -y yum-utils device-mapper-persistent-data 1vm2

添加镜像源:

  • 国外镜像源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 阿里镜像源:yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/decker-ce.repo

查看源中可用的docker版本:yum list docker-ce --showduplicates|sort -r

安装docker:

  • 安装最新版本(默认):yum install docker-ce
  • 安装指定版本:yum install docker-ce-20.10.9-3.el7

配置开机启动:

  • 启动docker:systemctl start docker
  • 配置开机启动:systemctl enable docker
  • 查看docker版本:docker version

在容器中安装gitlab服务

在设置其他所有内容之前,请配置一个新的环境变量 $GITLAB_HOME,指向配置、日志和数据文件所在的目录, 确保该目录存在并且已授予适当的权限。

  • docker中的gitlab文件会映射到本机的/srv/gitlab目录
export GITLAB_HOME=/srv/gitlab
本地位置容器位置使用
$GITLAB_HOME/data/var/opt/gitlab用于存储应用程序数据。
$GITLAB_HOME/logs/var/log/gitlab用于存储日志。
$GITLAB_HOME/config/etc/gitlab用于存储极狐GitLab 配置文件。

添加gitlab容器:

sudo docker run --detach \--hostname 192.168.1.103 \--publish 8443:443 --publish 8082:8082 --publish 222:22 \--name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab \--volume $GITLAB_HOME/logs:/var/log/gitlab \--volume $GITLAB_HOME/data:/var/opt/gitlab \--shm-size 256m \registry.gitlab.cn/omnibus/gitlab-jh:latest
  • hostname:你的服务器的ip地址或者域名
  • publish:将容器内部端口向外映射
    • 8443:443:将容器内443端口映射至宿主机8443端口
    • 8082:8082:将容器内8082端口映射至宿主机8082端口,这是访问gitlab的端口(我们等下配置)
    • 222:22:将容器内22端口映射至宿主机222端口,这是访问ssh的端口
  • name:命名容器名称
  • volume:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
  • restart:系统重启后,容器将自动restart

宿主机配置修改

宿主机端口号开放:8443端口,8082端口,222端口

查看开放的端口号
firewall-cmd --list-all开放指定端口(因为22一般被sshd服务占据,所以这里用222端口)
sudo firewall-cmd --add-port=8443/tcp --permanent
sudo firewall-cmd --add-port=8082/tcp --permanent
sudo firewall-cmd --add-port=222/tcp --permanent重启防火墙(设置完一定要重启防火墙):
firewall-cmd --reload现在外部就可以访问这些端口了

容器配置修改

gitlab.rb(宿主机路径:/srv/gitlab/config/gitlab.rb

配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.1.103:8082'配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.199.231'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是运行时22端口映射的222端口

启动并访问服务

启动gitlab容器:docker start gitlab

查看已存在的容器:docker ps -a

进入容器(一定要进入容器):docker exec-it gitlab /bin/bash

查看初始密码:cat /etc/gitlab/initial_root_password|grep password

修改初始密码:参考上面的方法

访问:http://192.168.1.103:8082


http://www.ppmy.cn/news/76453.html

相关文章

新星计划 uni-app 学习2

uni-app 学习资料:uni-app官网 教程地址:uni-app官网 官方给的很多视频地址,省的自己找。 前一阵子在apicloud群里吃瓜,该平台不再指出svn管理项目,集中到开发的ide里设置git,还有一个用友割韭菜。看官网…

2023河海大学838计算机学硕考研高分经验分享

大家好,我是陪你考研每一天的大巴学长。 大巴学长为大家邀请到了2023年838计算机学硕初试第二名的高分学长,为大家分享一下他的考研经验,经验里详细介绍了各科的复习方法,很有参考意义。 希望对大家有所借鉴和帮助,在…

基于FPGA的车牌识别

基于FPGA进行车牌识别 基于FPGA进行车牌识别 1. 文件说明2. 程序移植说明3. 小小的编程感想 本项目的原理讲解视频已经上传到B站“基于FPGA进行车牌识别”。 本项目全部开源,见我本人的Github仓库“License-Plate-Recognition-FPGA”。 1. 文件说明 小技巧&…

CTPN论文翻译与思考

CTPN: Detecting Text in Natural Image with Connectionist Text Proposal Network 文章目录 CTPN: Detecting Text in Natural Image with Connectionist Text Proposal Network摘要关键词1. 引言1.1 贡献 2. 相关工作3. 连接文本提议网络3.1 在细粒度提议中检测文本3.2 循环…

TwinCAT ENI 数据详解

使用倍福TwinCAT工具可以生成ENI,先对ENI的cyclic frame数据进行解释说明 需要提前了解EtherCAT报文格式,可参考下面文章 EtherCAT报文格式详解_ethercat listtype 1_EtherCat技术研究的博客-CSDN博客https://blog.csdn.net/gufuguang/article/details/…

shell 数组遍历的3种方法

shell数组的基本知识请参阅我的上一篇博客shell 数组 首先创建一个数组 array( A B C D 1 2 3 4) 1.标准的for循环 for(( i0;i<${#array[]};i)) do #${#array[]}获取数组长度用于循环 echo ${array[i]}; done; 2.for … in 遍历&#xff08;不带数组下标&#xff09;&…

【环境安装】Linux环境中docker安装redis

一、找到一个合适的docker的redis的版本 可以去docker hub中去找一下 https://link.juejin.cn/?targethttps%3A%2F%2Fhub.docker.com%2F_%2Fredis%3Ftab%3Dtags 二、使用docker安装redis 我这里安装了具体的某个版本 docker pull redis // 下载最新版Redis镜像 (等同于 : d…

JavaWeb15 - 线程数据共享和安全 -ThreadLocal

1. 什么是 ThreadLocal ThreadLocal 的作用&#xff0c;可以实现在同一个线程数据共享, 从而解决多线程数据安全问题.ThreadLocal 可以给当前线程关联一个数据(普通变量、对象、数组)set 方法 [源码!]ThreadLocal 可以像 Map 一样存取数据&#xff0c;key 为当前线程, get 方法…