利用Python-Jenkins批量创建与修改Job任务的自动化方案
本文介绍如何使用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的操作内容分享完毕,希望能为读者提供参考,并欢迎大家继续支持本站获取更多技术资讯。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









