Jenkins+Rancher自动化部署

介绍
本文主要记录Jenkins+Rancher+k8s自动化部署相关配置说明,不涉及rancher和jenkins安装部署,包含java server专案、WAR专案、前端VUE专案部署配置介绍。
服务器环境资讯:
环境验证
需要在安装jenkins服务上部署下面相应的软件,请注意软件版本,如已经安装相关软件,可跳过此章节。docker本地仓库
rancher-cli
需要安装rancher-cli,并且使用jenkins使用者预先登入rancher平台:命令参考:--token:这个使用者的token建议设定为永不过期,在rancher管理端 -> api&key > 新增。
nodejs
建议安装阿里映象,提高编译速度:jenkins相关外挂
jenkins启动使用者需要新增到docker组中:全域性工具配置

外挂管理
专案主要是java和vue开发的,所以需要安装Maven Integration plugin外挂。
java server专案部署
spring boot或者spring cloud自带容器,以及其它服务型别的java后端应用部署。jenkins任务配置
1、填写专案名称,选择"构建一个maven专案"
点选下面"OK"按钮
2、填写专案描述资讯

3、输入专案地址,并选择使用者凭证

本文通过conding.net作为程式码管理平台,点选"Add"新增自己账号凭证(输入coding.net平台登陆账号密码即可)。
4、配置maven编译指令码

5、编写rancher部署指令码

rancher部署指令码详细说明
docker映象制作
Dockerfile引数说明:FROM:选择基础映象包,该专案是用java语言开发需要jdk1.8所以选择openjdk:8ADD:将bRule-deploy-1.0.0.tar.gz档案解压并上传到映象的brule目录EXPOSE:容器内部启动2002埠,根据自身专案填写指定埠,多个埠填写多行EXPOSE标签ENTRYPOINT:容器启动时执行的命令,执行多条命令使用&&拼接,命令列中带&需要加上转移符&,使用tail -fn监听应用日志,以便容器日志检视。编译并上传映象
用于建立docker映象,就好比建立一个已经安装并且配置好了应用程序的操作系统映象。引数说明:192.168.100.21:5000:为本地docker映象服务器地址brule:latest:应用名称,根据自身专案名称修改
建立k8s容器
利用上面建立好的操作系统映象启动一个vmware虚拟机器,建立k8s容器。引数说明:brule:应用名称,根据自身专案名称修改,应用名称规范?(.?)*image:刚才建立的docker映象containerPort:容器启动埠,多个埠使用多行containerPort标签宣告,埠限制在【30000-32000】
建立k8s网络服务
前面vmware虚拟机器建立好后,怎么能让别人访问?这个时候就需要建立一个网络服务,用于打通路由器与vmware本地虚拟机器的网络。引数说明:brule:应用名称,根据自身专案名称修改port:容器启动埠nodePort:对外提供服务埠,外部机器访问
将上面配置好的shell指令码复制到Post Steps -> 执行shell文字域中,并点选"储存" -> "立即构建"即可部署。
应用部署
1、进入刚才建立好的jenkins任务,点选立即构建
2、点选左下角构建任务,选择"Console Output",检视构建日志

3、登入rancher管理平台,检视构建好的应用

war专案部署
基于J2EE专案的war包部署,前面操作都一致,只是shell部署指令码稍有不同,这里主要详细说明rancher部署指令码。rancher部署指令码详细说明
docker映象制作
Dockerfile引数说明:FROM:选择基础映象包,war统一使用tomcat容器部署,tomcat:8.5-jre8-slimADD:将operation.war档案解压并上传到映象的/usr/local/tomcat/webapps/目录EXPOSE:容器内部启动8080埠,根据自身专案填写指定埠,多个埠填写多行EXPOSE标签这里不需要配置ENTRYPOINT标签,因为tomcat映象包中已经有了。
编译并上传映象
用于建立docker映象,就好比建立一个已经安装并且配置好了应用程序的操作系统映象。引数说明:192.168.100.21:5000:为本地docker映象服务器地址operation:latest:应用名称,根据自身专案名称修改
建立k8s容器
利用上面建立好的操作系统映象启动一个vmware虚拟机器,建立k8s容器。引数说明:operation:应用名称,根据自身专案名称修改image:刚才建立的docker映象containerPort:容器启动埠,多个埠使用多行containerPort标签宣告,埠限制在【30000-32000】
建立k8s网络服务
前面vmware虚拟机器建立好后,怎么能让别人访问?这个时候就需要建立一个网络服务,用于打通路由器与vmware本地虚拟机器的网络。引数说明:operation:应用名称,根据自身专案名称修改port:容器启动埠nodePort:对外提供服务埠,外部机器访问
将上面配置好的shell指令码复制到Post Steps -> 执行shell文字域中,并点选"储存" -> "立即构建"即可部署。
前端VUE专案部署
基于webpack构建的VUE专案部署,前面操作都一致,只是shell部署指令码稍有不同,这里主要详细说明rancher部署指令码。rancher部署指令码详细说明
docker映象制作
Dockerfile引数说明:FROM:选择基础映象包,前端统一使用tomcat容器部署,tomcat:8.5-jre8-slimCOPY:将/dist目录上传到映象的/usr/local/tomcat/webapps/fastquery/目录EXPOSE:容器内部启动8080埠,根据自身专案填写指定埠,多个埠填写多行EXPOSE标签这里不需要配置ENTRYPOINT标签,因为tomcat映象包中已经有了。
编译并上传映象
用于建立docker映象,就好比建立一个已经安装并且配置好了应用程序的操作系统映象。引数说明:192.168.100.21:5000:为本地docker映象服务器地址operation:latest:应用名称,根据自身专案名称修改
建立k8s容器
利用上面建立好的操作系统映象启动一个vmware虚拟机器,建立k8s容器。引数说明:shutcm-fastquery-web:应用名称,根据自身专案名称修改image:刚才建立的docker映象containerPort:容器启动埠,多个埠使用多行containerPort标签宣告,埠限制在【30000-32000】
建立k8s网络服务
前面vmware虚拟机器建立好后,怎么能让别人访问?这个时候就需要建立一个网络服务,用于打通路由器与vmware本地虚拟机器的网络。引数说明:shutcm-fastquery-web:应用名称,根据自身专案名称修改port:容器启动埠nodePort:对外提供服务埠,外部机器访问
将上面配置好的shell指令码复制到Post Steps -> 执行shell文字域中,并点选"储存" -> "立即构建"即可部署。