jenkins配置docker联合项目的CICD

前提环境可参考文章:docker-compose构建cmdb联合容器项目什么是CICD

CI:持续集成
CD:持续部署

在cmdb中生成密钥对:

ssh-keygen >>>然后一路回车

image.png

获取cmdb的公钥:

image.png

在gitlab中添加cmdb的公钥:

image.png

jenkins中创建一个新的自由风格的任务:

image.png

添加任务的描叙信息:

image.png

配置git仓库

URL:填写gitlab相应项目的ssh链接 如:git@gitlab的容器名:root/cicd-cmdb.git
注意:要将gitlab的ssh链接前面改为gitlab的容器名

image.png

添加全局配置:

配置git仓库时需要添加一个拥有连接gitlab权限的用户,此时就需要添加一个全局配置
类型使用:SSH Username with private key

也可以使用gitlab账户密码的方式(username-password),但是由于安全机制,采用私钥方式解密更加安全


image.png
image.png

image.png

描述:这里可填对此全局配置的一些描述信息,加以区分其他全局配置
Private Key:此处填写的是jenkins的私钥,用来解密

若对ssh原理以及公钥私钥使用比较迷惑,可参考Linux下ssh-copy-id命令解析ssh-keygen的过程

image.png

构建触发器

此处创建了一个webhook用于gitlab仓库发生更改时(如push事件)用于通知jenkins,触发jenkins去gitlab拉取代码,实现ci持续集成操作

image.png

构建

此处,我选择构建步骤为执行shell

image.png

填写想执行的shell命令,可使用支持的环境变量


image.png

使用publish over SSH:

若安装了此插件,可使用


image.png

image.png
    1. 这里填写的是打好包的路径,是相对路径,相对于工作空间目录的,工作空间默认是在 $JENKINS_HOEM/workspace 目录下。每次新建一个构建任务时,会在此目录下创建一个和任务名同名的目录(比如:HelloMaven),在此目录下存放从远程代码库拉取的源代码,并且构建完成的文件(比如jar 包)也会在 HelloMaven/target 目录下。

    2. 是在把打好包的文件传输到远程应用服务器时,不希望被创建的目录名。 这个目录名必须是在 Source files 选项中填写的路径最前面的部分中。

    3. 远程应用服务器的目录,这个目录假如没有会被自动创建,但是此目录是给相对路径,相对于之前在系统设置中的 SSH Servers 中配置的服务器端路径,如下图中的 /opt/studentInfo

    4. 指构建后在远程应用服务器上执行的命令。

      注意:这里执行命令的用户同样是以下图中的Username 里填写的用户的身份执行的。假如执行命令是执行一个在远程应用服务器上的一个脚本,那么路径和文件都必须存在,并且,脚本中的任何相对路径都会相对于此用户的家目录。

image.png

配置完成保存后可进行构建测试

修改项目上的静态文件然后push至gitlab,可观察到jenkins自动捕捉到push动作后,开始自动构建,然后构建完成后,访问nginx反向代理的端口即可观察到修改成功。


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容