CI/CD中的CI

引言:

项目部署:
1、将项目通过maven进行编译打包
2、将文件上传到指定的服务器中
3、将war包放到tomcat的目录中
4、通过Dockerfile将tomcat和war包转成一个镜像,用dockercompose去运行容器
5、项目更新
想试试自己编写的代码,需要每次将上述流程重新从头在执行一次

太麻烦了,哪还有心情好好写代码。于是有了CI/CD,他能简化集成和部署的复杂度。

持续集成CI指的是只要代码有变更,就自动运行构建和测试,反馈运行结果。确保符合预期以后,再将新代码"集成"到主干;
持续发布CD就是在CI的基础上将代码快速在不同的环境(生产环境、测试环境)中自动化部署和配置;

CI/CD中的CI

Continuous Integration持续集成

CI的作用:

编写代码时,完成一个工程或者一个组件后,立即提交代码到Git仓库中,将项目重新构建并测试,不需要人工执行复制,编译,重启等操作。

简单的模型:

编写完一个html网页,使用git推送到gitlab,ci组件会向目标主机发起构建请求,由目标主机上的gitlab-runner进行执行,比如执行复制html文件到指定文件夹,并重启web服务器,这时候你访问网页,就会看到你新写的html网页了。原本这些上传复制等操作全都变成了自动化,你只需要推送代码到gitlab中。

优点:

  • 快速发现问题
  • 防止代码偏离主分支,(写一点就测一点)
  • 将重复性的手工流程自动化,让工程师更加专注于代码
  • 保持频繁部署,可随时产生一版可部署的版本
  • 编码->测试->上线->交付的频繁迭代周期缩短,同时获得迅速反馈便于协同

实践(安装和测试)

网上有很多cicd的工具,这里展示gitlab的ci部署过程和测试结果。

拓扑图

《CI/CD中的CI》

1、安装gitlab

环境:centos7

安装相关依赖包。

执行以下命令,安装相关依赖包。

依次执行以下命令,设置SSH开机自启动并启动SSH服务。

安装Postfix来发送通知邮件。

依次执行以下命令,安装Postfix。

依次执行以下命令,设置Postfix开机自启动并启动Postfix服务。

添加GitLab软件包仓库并安装软件包。

执行以下命令,添加GitLab软件包仓库。

执行以下命令,安装GitLab。

其中,将“ EXTERNAL_URL”的值设置为访问GitLab服务器的地址,可以设置为服务器的公网IP地址,也可以设置为域名。

回显:

开机启动

我这里需要使用http://192.168.30.152进行登录
如果访问不同,需要方通80端口。

设置一个密码。下次登录账户用root,密码就是你这次设置的。

《CI/CD中的CI》

进入到主界面,点击Create a project,如下图右上方按钮。

《CI/CD中的CI》

建立一个project

《CI/CD中的CI》

至此一个gitlab的一个项目建立完成。

2、安装git

在一个linux或者windows上安装git,并连接gitlab
注:centos7中默认安装了git,git的版本应该也是1.X ,现删除git1.x并使用yum装git2.x

首先,centos7中安装base源和epel源,因为之后的安装包需要依赖这两个源,base源和epel源的配置分别如下

针对centos7的安装包,执行如下命令下载并安装

初始化配置

我们首先要做的就是,设置自己的"用户名"和"用户邮箱",这些信息是必须的,特别是在多人协作时,这些信息也是非常必要的

配置ssh秘钥

简化git客户端连接gitlab,就是拉数据和推数据不用输入用户名和密码了。

在git客户端(centos7)上执行

登录到gitlab上对应的project中,根据下图步骤黏贴ssh秘钥。

《CI/CD中的CI》

点击添加之后如下图

《CI/CD中的CI》

在project中添加一个文件,这里举例添加一个readme

《CI/CD中的CI》
《CI/CD中的CI》

在git客户端上clone这个project

《CI/CD中的CI》

获取clone的ssh地址。
在git客户端服务器新建一个文件夹,并克隆到本地

git相关命令,请参考

【【】】

3、搭建gitlab-runner

在目标主机安装gitlab-runner,这里使用非doecker方式,运行平台使用shell,
如果想使用docker安装,请参考
https://blog.csdn.net/junmoxi/article/details/82762413
https://docs.gitlab.com/runner/install/linux-manually.html

下载和安装

配置Runner

进入你的gitlab ——> settings —— > CI/CD ——> Runners

《CI/CD中的CI》

自己的图不全,盗别人图,如下,他的图比较全

《CI/CD中的CI》

记住上图中的

注册(目标主机):
进入目标主机的cd /usr/local/bin/中,执行如下命令,其中url和token是上图中的参数,其他的瞎写就可以,最后选择使用哪个执行器,我这里用shell。

gitlab中会多出一个runner

《CI/CD中的CI》

点击上边的按钮,进入如下界面

《CI/CD中的CI》

把这个勾上
参考文章:
https://blog.csdn.net/junmoxi/article/details/82762413

4、整合项目入门测试

编写html页面,真实环境应该部署到tomcat并通过网页访问,能看到更新的内容即为成功,但我这里直接执行一下拷贝就得了,谁让我不会用那些高级的软件呢。
编写gitlab-ci.yml文件
将写好的html推送到gitlab中
可以在gitlab中查看到gitlab-ci.yml编写的内容。

在git客户端下编写.gitlab-ci.yml的文件

写完之后,新建一个index.html(随便写),再把文件推送到gitlab中,看看目标服务器的/home/gitlab-runner/中是不是有了index.html

从gitlab中查看结果

《CI/CD中的CI》

点击passed->test,这里显示的是操作了什么内容,从目标服务器中看到/home/gitlab-runner/中有index.html文件了。

《CI/CD中的CI》

就这样吧,ci就差不多成型了,高级的暂时还不会。退下了。bye。

点赞