创建项目

创建一个自由风格的项目就可以,也是用的比较多的方式,包括配置项,我们不会一一详解,只会选择比较常用的部分讲解,其他的自己研究吧,手动狗头。

k8s通过jenkins部署项目 jenkins部署项目到k8s_k8s通过jenkins部署项目

1.General(基础配置)

 

丢弃旧的构建

其中可以选择保持的天数和保持的个数。因为服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,磁盘占用过大等问题。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值。

k8s通过jenkins部署项目 jenkins部署项目到k8s_配置jenkins项目_02

2.源码管理

源码管理,也就是项目代码存放的位置,比如可能是github,gitlab,svn或者其他。在项目构建之前,jenkins会在工作空间中拉取相关的代码下来,方便我们后续构建使用。

这里我们使用的是gitlab。如果你是选择的默认插件安装,应该是自带的git选项如下

k8s通过jenkins部署项目 jenkins部署项目到k8s_jenkins怎么配置项目_03

git字段说明:

Repository URL :git仓库地址

Credentials :选择凭证,可以使用HTTP方式的用户名密码,也可以是RSA文件。 但要通过后面的"ADD"按钮添加凭证。

指定分支 :指定拉取的分支

源码浏览器 :你所使用的代码仓库管理工具,如github, gitlab.  

    URL :填入上方的仓库地址即可。

    Version :  这个是我们gitlab服务器的版本,不知道一般不写也没问题。

3.多个git仓库怎么弄?

如果说我们需要的代码被存放在了不同的git仓库中。你会发现上面的git是解决不了问题的。这时候我们需要安装一个插件。Multiple SCMs(Multiple SCMs plugin

 

k8s通过jenkins部署项目 jenkins部署项目到k8s_jenkins怎么配置项目_04

我是已经安装了,所以在已安装里面,大家自行安装就可以。上面有一行提示是已弃用。但是我尚未找到合适的替代品,经过测试截止到作者发文,这个工具还是可以用,只不过是没有人在维护了。

Multiple SCMs的使用

界面如下,其实就是可以配置多个git仓库

k8s通过jenkins部署项目 jenkins部署项目到k8s_jenkins详解_05

 

配置项和上面的git形式一样。但是注意左下角的add scm按钮。这里还可以再加一个这样的模块。

 

以为这样就可以了吗?

当你配置了两个的时候,你测试会发现,最后只有最后的那一个在工作空间中,其他的都不见了,其实就是前面的被后面的覆盖了。

 

这里我们注意有一个选项:Additional Behaviours(额外行为)点开选择检出到子目录。

k8s通过jenkins部署项目 jenkins部署项目到k8s_配置jenkins项目_06

这样每一个git都会检出到自己配置的目录中,就不会出现覆盖的情况。

 

4.构建触发器

如果你只安装了默认插件,触发器应该是没有webhook的选项的。我们需要安装一个插件GitLab Plugin,也有可能显示是gitlab,这是一个东西。

 

 

安装好以后:

k8s通过jenkins部署项目 jenkins部署项目到k8s_jenkins怎么配置项目_07

仔细我选中的这一项的标题:

Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.1.248:8080/project/pre_wap

其中标明了webhook地址,这个就是要填写在gitlab中的webhook地址(你的和我的应该不一样哈)。

k8s通过jenkins部署项目 jenkins部署项目到k8s_jenkins拉多个git仓库_08

高级中有Secret token选项,就是之前在讲gitlab项目创建webhook的时候需要填写的安全凭证。

 

5.构建环境

k8s通过jenkins部署项目 jenkins部署项目到k8s_jenkins怎么配置项目_09

这里我们只选择了其中一项:清空工作区,其他的尤其是ant和在远端计算机执行命令等方式也很好用,大家可以多研究一下。

清空工作区

Patterns for files to be deleted :其中包含include和exclude,也就是说选中的清空还是排除的清空。如果是全部清空,则选exclude,并把下面的值置空,即无排除项都删除掉。

Apply pattern also on directories :上面的规则默认是只针对文件,如果把规则应用于文件夹需要选中这一项。

 

工作空间的概念

上面多次提到工作空间(或者叫工作区),其实就是jenkins在运行的时候,会有一些文件操作,这些操作存储的磁盘位置就是工作空间。

k8s通过jenkins部署项目 jenkins部署项目到k8s_配置jenkins项目_10

工作空间中存放了拉取的git代码,和我生成的一些文件,比如上图中的Dockerfile,就是我在构建的时候通过shell脚本生成的文件。

 

关于构建的知识我们在接下来的文章中继续了解,未完待续~

 

(关于文章中的图各种颜色的都有,是因为我开了一个软件叫f.lux,到了晚上屏幕色温调节以后会变黄,见谅)