利用Python-Jenkins批量创建与修改Job任务的自动化方案

Alice
Alice
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍如何使用Python结合Jenkins库实现Job的批量创建与修改。通过读取jobsName.ini文件获取任务名,利用生成的config.xml作为模板,调用create_job和reconfig_job接口自动化操作。此外,补充了通过requests库禁用特定Job的示例,旨在提升Jenkins任务管理效率。

准备Job名称配置文件

首先,准备一个名为jobsName.ini的文件,用于存储需要创建的Job任务名称列表。

该配置文件内容示例如下,每行一个Job名称: jobs1 jobs2 jobs3

利用config.xml模板进行批量操作

其次,在Jenkins中创建Job时,系统会自动生成对应的config.xml配置文件。我们可以将此文件作为模板,用于批量创建新的Job或修改现有Job的配置。通常,这些生成的配置文件位于Jenkins的安装目录下。

Python脚本实现逻辑

接下来,通过Python脚本实现具体的自动化操作逻辑。

批量创建与修改核心代码


import jenkins

jobsOperation = input("请选择是新建jobs还是修改jobs:\na.创建jobs \nb.修改jobs \n")

# 连接远程Jenkins
server=jenkins.Jenkins("http://127.0.0.1:8080/", username="admin", password="admin")
# 读取及修改的配置模板
pathConfigxml = open("config.xml",encoding='utf-8').read()

# 读取要创建的jobs名称
def readJobsName():
  jobnames = open('jobsName.ini',encoding="utf-8")
  return jobnames
  pass

# 读取要修改配置的jobs名称
def readChangeJobsName():
  changeJobsName = open('changeJobsName.ini', encoding='utf-8')
  return changeJobsName
  pass

# 创建新的jobs
def createNewJobs():
  jobsname = readJobsName()
  for jobName in jobsname:
    server.create_job(jobName.replace("\n",""),pathConfigxml)

  pass

# 批量修改已有的jobs
def changeJobs():
  changeJobsName = readChangeJobsName()
  for changeJobName in changeJobsName:
    server.reconfig_job(changeJobName.replace("\n",""), pathConfigxml)
  pass

if "a"==jobsOperation:
  createNewJobs()
elif "b"==jobsOperation:
  changeJobs()
else:print("未选择操作,退出任务!")

禁用特定Job任务的补充方案

补充知识:除了批量创建,还可以使用Python编写功能来禁用Jenkins中的特定Job任务。

禁用Job的Requests实现代码


import requests

#python写一个功能:禁用jenkins某一个任务(job)
print(requests.get('http://localhost:8080/jenkins/job/Test_version/').text)
url = 'http://localhost:8080/jenkins/job/Test_version/disable'
re = requests.post(url, data={}, auth=('wyq', 'wyq'))
print(re.status_code)
print(re.headers)
print(re.reason)

执行上述脚本后,可以在Jenkins界面中查看到Test_version任务已成功被禁用。

以上关于使用python-Jenkins批量创建及修改jobs的操作内容分享完毕,希望能为读者提供参考,并欢迎大家继续支持本站获取更多技术资讯。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表