个人Gitlab搭建及配置

个人Gitlab搭建及配置,第1张

访问>

废话不多说,直接来干的。这里介绍一套成熟的方案。

gitlab(代码管理)+jenkins(持续集成)+k8s(服务管理)

其中涉及到的技术细节:dockerindockermakefile

gitlab使用介绍

gitlab是一款类似github的开源代码管理软件,可在公司内网,直接搭建一套私有代码仓库,适合团队多人开发,具有完善的分支管理、角色管理、issue、里程碑等。是非常优秀的一款软件。

jeknis使用介绍

这是一款开源持续集成软件,说人话就是使用他可以自动化部署服务。其具有gitlab相关的插件,安装后可直接对接gitlab,当gitlab发生push或者merge代码事件,会通知jeknis去完成最新推送的代码的镜像构建和部署。

推荐上面说的两款技术和jeknis混合使用。

1dockerindocker技术。顾名思义就是docker里面运行docker,简单点直接用dockerfile在jeknis镜像的基础上安装docker客户端或者k8s客户端。这样我们在容器中就可以直接调用宿主机的docker命令或者k8s命令。这对我们使用jenkins执行部署脚本,通知k8s或者docker部署服务,非常方便。

2makefile之所以介绍这款他,是因为其具有一个绝佳的功能,可以检测文件内容是否发生变化,这样对于微服务架构,其配合jenkins,无需指定什么,就可以部署上发生文件变化的微服务。而不会影响到其他服务。

k8s使用介绍

这款当红炸子鸡,相信大家耳闻已久。其实现了对docker的管理和编排。配合上共享存储和其服务自动重启机制,可以让我们的服务无当机。

对于docker内部服务的暴露推荐ingress+service

docker镜像管理推荐harbor。

以上完整的自动化开发部署环境,有兴趣的可以自行学习相关内容,进行搭建测试。

扩展参考:Jenkins+Gitlab通过脚本自动部署回滚web项目至集群

1):Gitlab服务器:ubuntu 192168152131 ---参考搭建:Linux安装gitlab,docker安装gitlab教程

2):Jenkins服务器:ubunu 192168152130 ---参考搭建:linux安装Jenkins,或docker安装Jenkins教程

在服务器上生成ssh-keygen,用于配置web服务器和Gitlab服务器。

3):web服务器:centos 192168152150 ---已搭建好LNMP环境

4):开发者电脑:Windows+key密钥 (用于提交代码)

1:在gitlab创建项目Test Project

21): 配置一个开发者电脑的ssh公钥到gitlab

配置一个开发者电脑的ssh公钥到gitlab,这样才能模拟开发上传代码到gitlab。

windows生成key过程及git安装,可参考:Windows下git和github的使用图文详细教程_the丶only的博客-CSDN博客_github win

在windows测试clone,和提交代码。


注:最新版git 已经将默认分支master改为main了。所以看到main,而不是master不要太奇怪

测试成功,在gitlab也显示有indexhtml文件。

22): 配置jenkins公钥到gitlab

同理,同样需要jenkins公钥,因为jenkins也需要拉去gitlab的代码。

jenkins服务器 上查看公钥并复制添加到gitlab,并命名为jekins。

1:插件管理,安装插件

jenkins本身没什么功能,主要是依靠插件来实现各种强大的功能。

基本需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter

可以在 Manage Jenkins >> Manage Plugins 查看管理插件。在Available 选项搜索安装插件即可。

安装完成后,重启Jenkins。

2:添加需要部署的web主机

在 Manage Jenkins >> Configure System 中往下翻,找到 Publish over SSH 选项,点击add ssh server。

在Jenkins服务器上,查看私钥,注,是私钥,不是公钥。

将私钥填写在key位置,还有添加web服务器相关信息。

注:如果测试报错如下

Failed to connect or change directory
jenkinspluginspublish_overBapPublisherException: Failed to add SSH key Message [invalid privatekey: [B@2e54414f]

是因为默认用ssh-keygen命令,默认生成了OPENSSH 格式密钥。而Jenkins暂时不支持这种私钥,私钥开头结尾如下:

所以,需要生成rsa密钥格式的。用开头说的ssh-keygen加其他参数生成即可。

私钥开头结尾如下:

再次测试,显示success,则成功。然后点击save保存即可。

3:构建任务项目

首页创建任务或者一个项目

命名为web-project,选择为freestyle project 自由项目。然后ok确认。

31):源码管理 Source Code Management

选择源码管理,添加gitlab的项目clone地址。

注:最后路径选择分支,我gitlab主分支名字为main,如果是master,则写master,或者合并的其他分支。

在add添加用户

添加完成后,选择git用户,这时没有红色提醒,说明已成功连接

32):构建触发器 Build Triggers

现在Build Triggers,勾选build when,其他默认,并记下链接 >分支和issue关联
1 新建issue (1)==> 2 创建分支(如:1_hw_RNA_ref) ==> 3 在分支1_hw_RNA_ref 中 更新添加的 文件 ==> 4 提交合并请求

前两个比较好 *** 作,
在3中更新添加的文件时,提交说明时需要将issue前的编号添加进去,如:

或是

然后push到gitlab/github上,在服务器或gitlab/github上提交合并请求。

gitlab/github上合并请求参照: >

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10655620.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存