linux环境GitLab服务部署安装及使用

一、GitLab介绍

GitLab是利用Ruby onRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

二、GitLab安装

1、先安装相关依赖

yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python

2、启动postfix,并设置开机自启动(支持gitlab邮件发送)

systemctl enable postfix 
systemctl start postfix

3、下载并安装Gitlab社区版RPM包

点击下载gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm放到服务器指定目录输入下面指令执行安装
在这里插入图片描述

rpm -ivh gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm

三、GitLab配置

1、配置端口号

vi /etc/gitlab/gitlab.rb
external_url 'http://103.45.163.129:9898'

在这里插入图片描述

将puma[‘port’] = 8080取消注释,并且改为别的端口,不能和external_url 的端口重复,然后再保存

在这里插入图片描述

2、配置默认日志目录

在 /etc/gitlab/gitlab.rb 文件中,有许多用于各种类型日志的 log_directory
键。取消注释并更新要放置在其他地方的所有日志的值:

将下面的配置在配置文件中/etc/gitlab/gitlab.rb放开

# For example:
gitlab_rails['log_directory'] = "/var/log/gitlab/gitlab-rails"
puma['log_directory'] = "/var/log/gitlab/puma"
registry['log_directory'] = "/var/log/gitlab/registry"
...

3、Gitlab邮箱配置

这里以QQ exmail (腾讯企业邮箱)为例

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"# 示例
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "fiend@sintech.cn"
gitlab_rails['smtp_password'] = "123qwe"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'fiend@sintech.cn'
gitlab_rails['smtp_domain'] = "exmail.qq.com"

4、配置修改完执行以下命令

gitlab-ctl reconfigure
gitlab-ctl restart

四、GitLab常用命令

# 开启,关闭,重启: gitlab组件
gitlab-ctl {start|stop|restart|status} 		
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl status# 重载配置文件(重新编译gitlab的配置)
gitlab-ctl reconfigure# 验证配置文件
gitlab-ctl show-config   # 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace    # 查看日志
gitlab-ctl tail
gitlab-ctl tail nginx/gitlab_access.log
gitlab-ctl tail nginx/gitlab_error.log# 常用目录
日志地址:/var/log/gitlab/   # 对应各服务的打印日志 
服务地址:/var/opt/gitlab/   # 对应各服务的主目录 

五、GitLab首次登录

gitlab搭建成功后,首次登录,可以直接使用root账号
因为如果注册,注册成功后,还不能直接登录,需要管理员批准,不如直接用root账号登录

1、进入gitlab控制台,查找root账号

gitlab-rails console -e production

输入下面查找指令

admin_users = User.where(admin: true)

可以看到root账号的id为1,根据id去修改root账号的密码
在这里插入图片描述

2、重新设置gitlab root账号密码

user = User.find_by(id: '1')
user.password = 'qeidc@2025'
user.password_confirmation = 'qeidc@2025'
user.save!

在这里插入图片描述

3、重置过的密码重新登录

在这里插入图片描述

六、GitLab创建组、项目、用户

创建顺序:先创建组——再创建项目——最后创建用户
项目、组、用户的关系:把创建的用户和项目加入组中,只有同一组的用户才能操作该组的项目。
在这里插入图片描述

1、创建组

在这里插入图片描述
在这里插入图片描述

点击设置可以看到组、项目、人员关系

在这里插入图片描述

2、创建项目,并把项目加入组中

在这里插入图片描述
3、创建完项目会提示添加ssh key

随便进入一个磁盘目录 Git Bash Here 使用指令 git config --list 查看是否已经做了git相关配置

在这里插入图片描述

然后输入下面指令一路回车可以获取到ssh key

# ssh-keygen -t rsa  # 一路回车[root@localhost /]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWqAYmPfWpw3I0GWqaIsUWJYPtn7VywwaQaM2YX31LCaODCP+cSBQDw2/IqblbifelQTIOTcKaDVsL9i5B1+2qdmLhasgYPXilxnIsRLOQGDU3OUBLq2FUJQvPwNoALb+s3yMxylkgsKUXZGsQwVPO9WZhePf/J+uXSVhQhqcDzV9RRh4jwwmhaztU+taFPlhcj5rUPuLzasvLQFMyjJR1qyXhyzsNJGVp5zFoPO1PHsCSJ1fKfTqsOZnpPOaDwCU3AK5oGcZmi+jawEl9uR8vlXJ0u1rbAcpKY702hXxTuRbAe5PcarSlVgtih07sQoDFUczY2Rc2DW8VX9p6Etx/ root@localhost.localdomain

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、创建普通用户并加入到群组

1、设置禁止用户注册

在这里插入图片描述

2、为开发创建账户,其他保持默认即可

在这里插入图片描述
填写完保存后再设置密码

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、创建完成后,最后我们可以看到创建的[仓库] [用户] [群组]

点击【develpment】将新创建的新用户加入到develpment群组,才能让该用户去管理群组中的项目

在这里插入图片描述
在这里插入图片描述

将项目url复制下来,后面关联使用

在这里插入图片描述

4、使用新创建的用户账号登录gitlab
在这里插入图片描述

七、将新项目如何推送到gitlab仓库

1、gitlab上新建一个空白项目
在这里插入图片描述

2、初始化本地仓库并commit项目

进入本地该项目目录下,右键Git Bash Here打开git命令窗口:

在这里插入图片描述

初始化本地仓库:

git init

将本地项目的所有文件添加到暂存区:

git add .

commit提交项目:

git commit -m "初始化项目"

建立本地仓库和远程仓库关系并推送

git remote add origin  https://gitlab.xx.com/xxxx.git

如果在这一步时如果出现错误:fatal:remote origin already exists,需要先执行下面的命令清除关联关系,然后再进行上一步动作:

git remote rm origin

查看关联关系是否成功建立:

git remote -v

先拉取一下远程仓库内容:

git pull --rebase origin master

再推送本地内容到远程仓库:

git push  origin master

最后看效果:

在这里插入图片描述

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

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

相关文章

Gartner报告解读(四)| 如何运用上升期的基础设施自动化(IA)为企业数字化转型赋能?

近期,Gartner发布的《2024年中国基础设施战略技术成熟度曲线》显示,未来5-10年,大量具有颠覆性或较高影响力的创新技术可能会实现主流采用,其中就包括基础设施自动化(IA)。 基础设施自动化Gartner评估情况 …

请求响应:常见参数接收及封装(Json参数及路径参数)

Json参数 Json格式的数据具有轻量级、易于阅读和编写、易于解析等诸多优点。在前后端交互时,大部分情况下请求体中的数据会以JSON格式进行传递。前端的请求在请求体中携带了Json格式数据,后端程序需要对其进行解析并封装使用,而接收Json参数…

大舍传媒-关于海外媒体宣发的探讨

关于海外媒体宣发的探讨 一、海外媒体宣发的重要性 在当今全球化的时代,海外媒体宣发对于企业、组织和个人来说具有至关重要的意义。通过有效的海外媒体宣发,可以提升品牌知名度,拓展国际市场,增强影响力,吸引更多的潜…

项目开发之Jenkins

文章目录 思考基础概述JenkinsMavenGit集成开发部署GitLab服务 实战1 新建任务需要的配置pipeline最后 思考 jenkis怎么连接github仓库? jenkis的作用是什么?基础 概述 定义:Jenkins是一款开源的持续集成(Continuous Integration&#xff…

在VSCode中搭建Python开发环境

在VSCode中搭建Python开发环境 1、安装 首先确保电脑已经安装好Python和VSCode。 2、安装VSCode的Python插件 3、选择python解释器 ctrlshiftP打开VSCode的命令行,输入python: select Interpreter选择合适的python版本。 4、运行代码 在windows下你可以直接使用…

Windows 11 如何配置node.js

一,官网下载 官网首页 下载最新LTS版本,比较稳定,如果想探索更新的版本去探索新的nodejs功能。 1. 下载完成后,双击运行程序,点击next 2. 勾选接受协议,点击next 3. 选择自己的安装路径(默认是…

1-12 GD32基于定时器输入捕获

前言: 基于本人对相关知识回顾与思考,仅供学习参考 目录 前言: 1.0 输入捕获 2.0 信号周期 3.0 定时器配置 4.0 定时器配置 5.0 定时器中断 后记: 1.0 输入捕获 2.0 信号周期 获取信号周期的方法,在第一次捕获与…

大数据新视界 -- Hive 元数据管理:核心元数据的深度解析(上)(27 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

刷蓝桥杯历年考题(更新至15届~)

第十五届 CA组省赛 AcWing5980.训练士兵 方法一:树状数组:O(nlogn) self-complete /*先枚举组团,后分析每个士兵,有一个特点,组团费用是固定的,那当然是让所有士兵一块训练,训练完的士兵也不会有损失当还…

合合信息智能图像处理技术,让你的设备更智能

目录 图像增强技术主要包括以下几个方面: 最近和一位朋友聊天,听到一些关于打印机的吐槽。 从20年开始,部分或者全部远程办公的企业渐渐多起来,wfh的打工人也在家添置了简易的必要办公设备,比如打印机。 在家用&…

CSS 选择器的优先级

一、基本概念 CSS 选择器的优先级决定了在样式冲突时,哪个样式规则将被应用到 HTML 元素上。通过理解 CSS 选择器的优先级,可以更好地控制网页元素的样式,避免样式冲突。 二、优先级计算规则 1. 内联样式 内联样式具有最高的优先级。 &l…

基于Transformer的编码器-解码器图像描述模型在AMD GPU上的应用

Transformer based Encoder-Decoder models for image-captioning on AMD GPUs — ROCm Blogs 图像描述,即基于生成式人工智能(GenAI)自动生成简洁的图像文本描述,在现实世界中有着非常重要的应用。例如,图像描述可以为…

多人强化学习

Gradient Counterfactual multi-agent policy gradients 这里有个后面流传很广的算法:COMA(counterfactual multu-agent) 文中有提到最简单的policy gradient的形式是Reinforce,公式如下: ∇θ J(θ) Eτ~πθ [∑t0T ∇θ log πθ(at | …

【JuMP.jl】非线性规划

[JuMP] 03 非线性规划 非线性规划模型 非线性规划问题是线性规划问题的自然推广, 在实际的工程问题中,优化问题中的目标函数与约束不会总是线性函数,因此非线性规划的求解功能是必要的。 min ⁡ x ∈ R n f 0 ( x ) s.t. l j ≤ f j ( x ) ≤…

力扣面试题 30 - 最小高度树

题目: 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。 示例: 给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表…

【从0带做】基于Springboot3+Vue3的场馆预约系统

大家好,我是武哥,最近给大家手撸了一个基于SpringBoot3Vue3的场馆预约系统,可用于毕业设计、课程设计、练手学习,系统全部原创,如有遇到网上抄袭站长的,欢迎联系博主~ 项目演示视频和教程视频 https://ww…

mysql json整数数组去重 整数数组精确查找并删除相应数据

都是针对整数数组 。低版本可用。懒得去查找资料的可以参考下。 json整数数组查找具体数据修改或者删除: update saas_new_tms.eda_logistics_limit set service_attribute json_remove(service_attribute,json_unquote(json_search(replace(service_attribute,…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息:公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中,勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

计算机网络期末复习-part1-概述

1、互联网的组成 互联网由两大块组成。 1、边沿部分:由所有连接在互联网上的主机组成,是用户直接使用的部分。 2、核心部分,由大量网络和路由器组成,为边缘部分提供服务。 2、数据传送阶段的三种交换方式的主要特点 1、电路交…

【MySQL 进阶之路】索引的使用

5.索引的使用规则 在数据库管理系统(DBMS)中,索引是提高查询效率的关键机制之一。MySQL索引优化是指通过设计、调整和选择合适的索引策略,以提高数据库的查询性能和降低资源消耗。以下是一些关键的索引使用规则: 1. …