当前位置: 首页 > 后端技术 > Node.js

如何使用Jenkins自动部署

时间:2023-04-03 14:12:38 Node.js

介绍Jenkins是一个开源的、可扩展的、基于web界面的持续集成、交付、部署(软件/代码编译、打包、部署)平台。允许持续集成和持续交付项目,无论使用何种平台,都可以处理任何类型的构建或持续集成。开源java语言开发持续集成工具,支持CI、CD;安装部署配置方便:可通过yum安装,或下载war包通过docker容器等方式快速实现安装部署,方便web界面配置管理;消息通知和测试报告:集成RSS/E-mail,在构建完成时通过RSS发布构建结果或通过邮件通知,生成JUnit/TestNG测试报告;分布式构建:支持Jenkins允许多台电脑一起构建/测试;文件识别:Jenkins可以跟踪哪个build生成了哪些jar,哪个build使用了哪个版本的jar等;丰富的插件支持:支持扩展插件,可以开发适合自己团队的工具,如git、svn、maven、docker等。Jenkins的安装通过Dockermkdir-P/opt/data/jenkins_home安装sudodockerrun-d-p8099:8080-v/opt/data/jenkins_home:/var/jenkins_home--namemy_jenkinsjenkins:latest-d后台开启jenkins服务-p是端口映射-v是数据挂载-name是将容器命名为Jenkins添加Github账号需要安装GitHub插件Net的JenkinsNginxpeanutshellLinux客户端phddnsNginx介绍(来自wiki)Nginx可以部署在网络上使用FastCGI脚本,SCGI处理器,WSGI应用服务器或者动态HTTP包含PhusionPassenger模块,可用作软件负载平衡器。[11]Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构[12]可以在高负载下提供更可预测的性能。[13]Nginx是一个面向性能的HTTP服务器。与Apache、lighttpd相比,具有内存少、稳定性高等优点。与老版本(<=2.2)的Apache不同,Nginx没有采用每客户端一个线程的设计模型,而是充分利用异步逻辑减少上下文调度开销,因此具有更强的并发服务能力。整体设计模块化,具有丰富的模块库和第三方模块库,配置灵活。在Linux操作系统下,Nginx使用epoll事件模型。得益于此,Nginx在Linux操作系统下相当高效。同时,Nginx使用类似于epoll的高效事件模型kqueue,在OpenBSD或FreeBSD操作系统上安装Nginx。可以在Linux上编译安装,也可以通过docker执行。这是docker-compose脚本#docker-composeup-dversion:'2'services:nginx:image:nginxrestart:alwaysvolumes:-./nginx.conf:/etc/nginx/nginx.confports:-80:80-8086:8086网络:-glodon_network#file_name:nginx.confusernginx;worker_processes1;error_log/var/log/nginx/error.logwarn;pid/var/run/nginx.pid;events{worker_connections1024;}http{包括/etc/nginx/mime.types;default_type应用程序/八位字节流;log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';access_log/var/log/nginx/access.logmain;发送文件;#tcp_nopush上;keepalive_timeout65;#gzip上;服务器{听80;server_namefuzhou20.vicp.net;#location^~/github-webhook/{#proxy_passhttp://192.168.31.246:5700;#if($request_method!~^(POST)$){#return444;#}#}location/{proxy_passhttp://192.168.31.246:5700;}}}以上两个配置文件都会体现在nginx文件夹中。花生壳介绍这里使用花生壳作为内网穿透端口映射的工具是的,由于公司内网不暴露在公网,所以需要花生壳作为间接内网映射工具来接收github发送的hook信息。下载安装完成后开始配置,将花生壳映射到部署Nginx的80端口。花生壳3.0ForLinux相关安装使用文档准备工作安装GitHub插件安装插件系统管理>插件管理>可用搜索安装GitHub插件配置SFTP主机安装系统管理>插件管理>可用配置系统管理>系统配置>通过SSH发布>添加填写必填项,点击高级,勾选使用密码验证,填写密码,选择验证RemoteDirectory,一般设置为用户目录,配置Node环境,插件安装,系统管理>插件管理>availableNodeJSPlugin插件配置系统管理>全局工具配置>NodeJS创建项目1.新建一个任务2.构建一个自由风格的软件项目3.配置代码源RepositoryURL源地址为https://github.com/TangUsers/...如果你的账号不包括在内,您可以选择ADD添加您的帐户密码4.配置和编译。这里介绍的Node-based编译需要选择和配置Nginx版本。由于磁盘空间有限,开发环境需要用其他工件填充空间。5.编译脚本#跳转到代码目录cdfrontend#覆盖配置脚本echo"exportletROOT">./src/config/url.jsecho"ROOT='http://192.168.31.54:8000'//dev">>./src/config/url.js#npm依赖安装npminstall#编译包npmrunbuild编译上选择的连接用于上传编译包根据配置的SFTP主机上传编译好的神器到对应目录以较早的gitpull后的工作空间目录为准。Removeprefix上传后的目录RemotedirectoryRemotedirectory这里最后的神器会上传到/home/emsoft/jyjy_front_end/new-buildSFTP主机的当前目录是之前主机配置的目录。rm-rf~/jyjy_front_end/buildmv-f~/jyjy_front_end/new-build~/jyjy_front_end/buildsudonginx-sreload