CI/CD之搭建私有git仓库gitlab

Gitlab简介

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。

Gitlab官方文档:https://docs.gitlab.com/

CI/CD

  • 持续集成
    考虑一个应用程序,它的代码存储在 GitLab 的 Git 存储库中。开发人员每天多次推送代码更改。对于每次推送到存储库,可以创建一组脚本来自动构建和测试您的应用程序。这些脚本有助于减少在应用程序中引入错误的机会。这种做法称为持续集成。提交给应用程序的每个更改,甚至是开发分支,都会自动且连续地构建和测试。这些测试可确保更改通过您为应用程序建立的所有测试、指南和代码合规性标准。GitLab 本身就是一个使用持续集成作为软件开发方法的项目示例。对于对项目的每次推送,都会针对代码运行一组检查。

  • 持续交付
    持续交付是超越持续集成的一步。每次将代码更改推送到代码库时,不仅会构建和测试应用程序,还会持续部署应用程序。但是,通过持续交付,可以手动触发部署。持续交付会自动检查代码,但需要人工干预以手动和战略性地触发更改的部署。

  • 持续部署
    持续部署 是超越持续集成的另一个步骤,类似于持续交付。不同之处在于,不是手动部署应用程序,而是将其设置为自动部署。不需要人工干预。

  • GitLab CI/CD
    GitLab CI/CD是 GitLab 的一部分,用于所有持续方法(持续集成、交付和部署)。使用 GitLab CI/CD,可以测试、构建和发布软件,而无需第三方应用程序或集成。

Gitlab CI&CD官方介绍:https://docs.gitlab.com/ee/ci/introduction/index.html

安装Gitlab

推荐使用国内镜像站点下载软件https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/,注意官方建议内存至少4G

[root@server1 ~]# yum install -y gitlab-ce-14.1.2-ce.0.el7.x86_64.rpm		#我们暂时没有那么多的需求,安装ce社区版即可,ee是企业版

安装好后会显示如下界面
在这里插入图片描述编辑配置文件
在这里插入图片描述
ip改为本机
在这里插入图片描述
重载服务(时间长)

[root@server1 gitlab]# gitlab-ctl reconfigure
#其他基本命令
	gitlab-ctl start # 启动所有 gitlab 组件
	gitlab-ctl stop # 停止所有 gitlab 组件
	gitlab-ctl restart # 重启所有 gitlab 组件
	gitlab-ctl status # 查看服务状态
	gitlab-ctl tail# 重载服务

结束之后默认root的密码会存放在/etc/gitlab/initial_root_password
在这里插入图片描述网页访问192.168.122.11
在这里插入图片描述密码要到文件中去看,复制下来

[root@server1 gitlab]# vim  /etc/gitlab/initial_root_password

在这里插入图片描述

使用root用户登录
在这里插入图片描述
设置中文
在这里插入图片描述
在这里插入图片描述
重设密码,密码不能少于8个字符
在这里插入图片描述
如果root密码忘记了,可以按如下步骤重设密码

[root@server1 ~]# gitlab-rails console -e production
user = User.where(username:"root").first
user.password="12345678"
user.password_confirmation="12345678"
user.save!
quit

在这里插入图片描述
查看gitlab状态可以看到gitlab是自带普罗米修斯监控的,node-exporter是普罗米修斯监控服务器的组件;还有logrotate 程序,logrotate是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。
在这里插入图片描述

Gitlab使用

添加ssh密钥,并复制

[root@server1 gitlab]# ssh-keygen
[root@server1 gitlab]# cd 
[root@server1 ~]# cd .ssh/
[root@server1 .ssh]# ls
id_rsa  id_rsa.pub
[root@server1 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSA3zOJdAeCPVZtLj/dM63oPk2xvtXCLieBcZjl7iGLddnGPkO33bFRGfx2NWfXZh5aEblFjYuW0jM+mB2UB/TWE9a9DRlyWWLDz3A5maVqa73yA22Z6dOLu/ujMF5tREJ6r0ZWLoBR79iUTmy7Ts3mYpuXMo8qLOphkA1MXMa17+VNFwkOYLpwUqDHeA+TAIvm4dJrVPWpf38dBevnN325veT41J2B7NjLqPPgekR9BPFc0zaylymoU/Ax9+8OoaFUGXLCEczEwQXYKzjdmtO1OAykb2oLzlRsf5TN5DdmPuqo8FCPfTfR2lAtQfuIFrX1ryTB4itAhcHEnqS87Yf root@server1

在这里插入图片描述
粘贴到gitlab里
在这里插入图片描述如下添加好了
在这里插入图片描述新建一个项目
在这里插入图片描述设为私有的项目
在这里插入图片描述
现在可以上传本地仓库或者克隆gitlab的仓库
在这里插入图片描述
使用如下命令可以克隆,推送本地仓库到远程就不演示了,和gitee一样
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现GitLabCI/CD功能,首先需要在GitLab上创建一个项目,并在项目中添加一个名为.gitlab-ci.yml的配置文件。然后,你可以使用Java编写一个客户端来连接到GitLab服务器,并触发CI/CD流程。 以下是一个简单的Java GitLab客户端示例代码: ```java import org.gitlab4j.api.GitLabApi; import org.gitlab4j.api.models.Pipeline; public class GitLabClient { private static final String GITLAB_URL = "https://your-gitlab-url.com"; private static final String ACCESS_TOKEN = "your-access-token"; private static final String PROJECT_ID = "your-project-id"; public static void main(String[] args) throws Exception { // Create a GitLabApi instance using your GitLab URL and access token GitLabApi gitLabApi = new GitLabApi(GITLAB_URL, ACCESS_TOKEN); // Trigger a new pipeline for the specified project Pipeline pipeline = gitLabApi.getPipelineApi().createPipeline(PROJECT_ID, "master"); System.out.printf("Pipeline %d has been triggered for project %d\n", pipeline.getId(), pipeline.getProjectId()); } } ``` 在这个例子中,我们使用gitlab4j-api库来连接到GitLab服务器,并通过调用getPipelineApi().createPipeline()方法触发一个新的CI/CD流程。你需要将GITLAB_URL,ACCESS_TOKEN和PROJECT_ID替换为你自己的GitLab URL,访问令牌和项目ID。 请注意,为了使用GitLab API,你需要在GitLab服务器上生成一个访问令牌,并将其用作ACCESS_TOKEN。此外,你还需要在项目的设置中启用CI/CD功能,并在项目根目录中创建.gitlab-ci.yml文件以定义CI/CD流程。 希望这个示例可以帮助你开始实现GitLabCI/CD功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值