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

Posted Tuki_a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CI/CD之搭建私有git仓库gitlab相关的知识,希望对你有一定的参考价值。

私有仓库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一样

以上是关于CI/CD之搭建私有git仓库gitlab的主要内容,如果未能解决你的问题,请参考以下文章

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins

CI/CD持续集成与持续交付(上)-------- git,gitee远程共有仓库和gitlab私有仓库,jenkins

如何使用GitLab和Rancher构建CI/CD流水线–Part 1

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作

SpringBoot+Git+Jenkins+Docker实现CI/CD

jinkens+gitlab针对k8s集群实现CI/CD