前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins自动化部署Python应用

Jenkins自动化部署Python应用

作者头像
用户8949263
发布2023-08-22 17:26:39
8180
发布2023-08-22 17:26:39
举报
文章被收录于专栏:Python数据分析实例

01、关于Jenkins

Jenkins 是最著名的持续集成工具。

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。

02、 Jenkins安装

1、安装java

Jenkins是基于Java开发的,因此需要先安装Java。Oracle官网产品下载java

点击Oracle JDK,下载Java SE11

2、安装Jenkins

可以直接官方网站下载:https://www.jenkins.io/zh/download/

根据你的系统下载安装包,我这边下载windows,点击安装包即可自动安装:

重启服务,关闭防火墙。

安装完成打开工具,浏览器访问:http://localhost:8080

如果一直都是这个界面,浏览器控制台(F12),查看是否有以下的错误

GET http://localhost:8080/login?from=%2F 503 (Service Unavailable)

如果有,则需要进行以下操作

  1. 1. 进入jenkins的工作目录:C:\ProgramData\Jenkins
  2. 2. 进入.jenkins目录,打开hudson.model.UpdateCenter.xml进行修改
  3. 3. 将url中的 https://updates.jenkins.io/update-center.json 修改为 http://mirror.xmission.com/jenkins/updates/update-center.json

进入jenkins安装目录,使用以下命令重启

jenkins restart

选择安装推荐插件, 进行后续配置即可,创建一个账号密码,登录界面如下

03、Jenkins部署Python程序

Pythn脚本定时自动化运行部署操作特别简单,只需要进行以下几步操作:

1、Python插件安装

安装完Jenkins后,需要安装Python插件。在Jenkins的管理界面中,选择“插件管理”,然后选择“可选插件”,搜索“Python”,勾选“Python Plugin”插件进行安装。

2、配置Python环境

在Jenkins的管理界面中,选择“Global Tool Configuration”,在其中配置java环境。

在Jenkins的管理界面中,选择“Configure System”,在其中配置Python环境。点击“添加Python”,输入Python的安装路径和名称,保存配置。

3、创建Jenkins项目

在Jenkins的首页中,点击“新建任务”,输入任务名称,选择“自由风格的软件项目”,点击“确定”创建项目。

4、配置项目

在项目的配置界面中,两个关键的设置,构建触发器和Build Steps。

Jenkins 自带两种模式,来管理定时触发构建项目:

  • Build periodically(定时构建):周期性进行构建,不限制于项目是否有变动;
  • poll scm(轮询):定时检查是否有改动,有改动进行触发构建,周期时间内无改动则不触发构建;

0-59

0-23

1-31

1-12

0-7

含义:

  第一位:表示分钟,取值范围 0~59

  第二位:表示小时,取值范围 0~23

  第三位:表示每月第几天,取值范围 1~31

  第四位:表示第几月,取值范围1~12

  第五位:表示每周第几天,取值范围0~7,0和7代表的都是周日

特殊字符

代表的涵义

举例

*

所有可能的值

【月】字段是星号,则表示每月都执行操作

,

指定一个列表范围

【日】字段是1,2,5,表示1日、2日、5日执行操作

-

可以用整数之间一个范围

【时】字段是2-6,表示2,3,4,5,6小时执行操作

/

时间的间隔频率

【时】字段是0-23/2,则表示每两小时执行一次正斜线和星号可以一起使用,例如:*/10,如在【分】字段,则表示每十分钟执行一次

H

分散负载

【分】字段是H,表达式H 7 * * *表示7点-8点之间内执行操作,根据自身负载情况选择运行(可以理解为随机一个)

0和7表示:周日

1-5表示:周一-周五,即工作日

6,7表示:周六和周日,即周末、非工作日

示例

定时构建需求

表达式

备注

周一至周五,9点 12点 16点定时触发

H 9,12,16 * * 1-5

每隔5分钟构建一次

H/5 * * * *

每隔30分钟

H/30 * * * *

每隔75分钟

H/15 H/2 * * *

如果写成:H/15 H/1 * * *表示:每小时15分执行构建所以,要注意H/2

每隔90分钟

H/30 H/2 * * *

每隔135分钟

H/15 H/3 * * *

每隔145分钟

H/35 H/3 * * *

放到Jenkins上执行:9:59:35-12:24:35中间是2小时25分钟,即145分钟

每隔155分钟

H/25 H/3 * * *

放到Jenkins上执行:9:44:39-12:19:39中间是2小时35分钟,即155分钟

每隔150分钟执行一次

H/30 H/3 * * *

每两小时构建一次

H H/2 * * *

每天凌晨2点构建一次

0 2 * * *

分钟是0,则每天的2:00进行构建

每天的6点执行,H表示不确定在哪一分钟上(分散负载)

H 6 * * *

每天中午12点定时构建一次

H 12 * * *

在每小时的前半小时内,每10分钟执行一次

H(0-29)/10 * * * *

每工作日,每2小时过去,从上午9:45开始,下午3:45结束,在第45分钟构建

45 H(9-15)/2 * * 1-5

工作日,9点45-16点45,每2小时执行一次

45 H(9-15)/2 * * 1-5

每两小时一次,每个工作日上午9点到下午4点(4:59)

H H(9-16)/2 * * 1-5

注意:这里的4点,如果理解为16:00则写成9-15,如果理解为16:59,则写成9-16以下涉及到N点,均指N点59分

工作日,8点-16点之间,每隔2小时执行一次

H H(8-16)/2 * * 1-5

例如放到Jenkins上执行:14:43:59-16:43:59

每星期的星期一到星期五的10:45分执行

45 10 * * 1-5

每天上午10点,下午2点,4点

0 10,14,16 * * *

朝九晚五工作时间内每半小时

H/30 9-17 * * 1-5

工作日1,3,5每一个半小时运行一次

H/30 H/2 * * 1,3,5

工作日,早8晚5,每隔120分钟执行一次

H 8-17/2 * * 1-5

周末早5点10分,到晚10点30分,每隔0.5小时执行一次

H/30 5-22 * * 6,7

工作日,早9晚6,每隔75分钟执行一次

H/15 9-18/2 * * 1-5

周末早6点10分,到晚11点30分,每隔135分钟执行一次

H/15 6-23/3 * * 6,7

1月-11月的1号和15号,执行一次(不固定在某个小时和某个分钟上)

H H 1,15 1-11 *

每天的6点10分执行

10 6 * * *

工作日8点执行

0 8 * * 1-5

  • 在“Build Steps”选项卡中,选择“Execute Python script”,在其中输入需要执行的Python脚本,例如:

其中,第一行激活虚拟环境,第二行执行测试脚本。在“构建后操作”选项卡中,可以设置构建成功或失败后执行的操作,例如发送邮件、发布到服务器等。

5、触发构建

配置完成后,保存点击项目的“Build Now”按钮,触发构建。构建完成后,可以查看构建日志和测试报告,进行问题排查和代码优化。

以上便是Jenkins工具的下载及使用说明,我们可以通过他快速部署一个自动化任务,是一个部署定时任务的不错方式。

你还不赶快试试!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python数据分析实例 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档