前提环境可参考文章:docker-compose构建cmdb联合容器项目 和 什么是CICD
CI:持续集成
CD:持续部署
在cmdb中生成密钥对:
ssh-keygen
>>>然后一路回车
获取cmdb的公钥:
image.png在gitlab中添加cmdb的公钥:
image.pngjenkins中创建一个新的自由风格的任务:
image.png添加任务的描叙信息:
image.png配置git仓库
URL:填写gitlab相应项目的ssh链接 如:git@gitlab的容器名:root/cicd-cmdb.git
注意:要将gitlab的ssh链接前面改为gitlab的容器名
添加全局配置:
配置git仓库时需要添加一个拥有连接gitlab权限的用户,此时就需要添加一个全局配置
类型使用:SSH Username with private key
image.png image.png也可以使用gitlab账户密码的方式(username-password),但是由于安全机制,采用私钥方式解密更加安全
image.png
描述:这里可填对此全局配置的一些描述信息,加以区分其他全局配置
Private Key:此处填写的是jenkins的私钥,用来解密
image.png若对ssh原理以及公钥私钥使用比较迷惑,可参考Linux下ssh-copy-id命令解析、ssh-keygen的过程
构建触发器
此处创建了一个webhook
用于gitlab仓库发生更改
时(如push事件)用于通知jenkins
,触发jenkins去gitlab拉取代码,实现ci持续集成操作
构建
此处,我选择构建步骤为执行shell
填写想执行的shell命令,可使用支持的环境变量
image.png
使用publish over SSH:
若安装了此插件,可使用
image.png
image.png
-
这里填写的是打好包的路径,是相对路径,相对于工作空间目录的,工作空间默认是在
$JENKINS_HOEM/workspace
目录下。每次新建一个构建任务时,会在此目录下创建一个和任务名同名的目录(比如:HelloMaven
),在此目录下存放从远程代码库拉取的源代码,并且构建完成的文件(比如jar
包)也会在HelloMaven/target
目录下。 -
是在把打好包的文件传输到远程应用服务器时,不希望被创建的目录名。 这个目录名必须是在
Source files
选项中填写的路径最前面的部分中。 -
远程应用服务器的目录,这个目录假如没有会被自动创建,但是此目录是给相对路径,相对于之前在
系统设置
中的SSH Servers
中配置的服务器端路径,如下图中的/opt/studentInfo
-
指构建后在远程应用服务器上执行的命令。
注意:这里执行命令的用户同样是以下图中的
Username
里填写的用户的身份执行的。假如执行命令是执行一个在远程应用服务器上的一个脚本,那么路径和文件都必须存在,并且,脚本中的任何相对路径都会相对于此用户的家目录。
-
配置完成保存后可进行构建测试
修改项目上的静态文件然后push至gitlab,可观察到jenkins自动捕捉到push动作后,开始自动构建,然后构建完成后,访问nginx反向代理的端口即可观察到修改成功。
image.png
网友评论