通過Python腳本+Jenkins實(shí)現(xiàn)項(xiàng)目重啟
一、需求
微服務(wù)項(xiàng)目,服務(wù)很多,重啟服務(wù),基本都是通過Jenkins進(jìn)行發(fā)布,過程差不多如下:
1、登錄后臺(tái),選擇環(huán)境和服務(wù),如下圖:
2、點(diǎn)擊“Build_with_Parameters”,彈出窗口,選擇分支,然后點(diǎn)擊“開始構(gòu)建”,如下圖:
通過上面的操作,就會(huì)進(jìn)入構(gòu)建隊(duì)列排隊(duì),如果系統(tǒng)沒有正在構(gòu)建的,很快就可以在構(gòu)建執(zhí)行狀態(tài)中看到,受到Maven項(xiàng)目配置的執(zhí)行者數(shù)量的限制,如下圖,公司限制的是同一時(shí)間只能有3個(gè)在構(gòu)建中
所以,當(dāng)需要重啟很多個(gè)服務(wù)時(shí),需要每個(gè)都去重復(fù)上面的步驟,選環(huán)境-》選服務(wù)-》Build_with_Parameters-》選分支-》開始構(gòu)建,賊麻煩,很影響效率,這也是我寫這篇文章的原因,下面和大家分享下我的解決方案
二、分析
其實(shí)上面最終就是觸發(fā)構(gòu)建動(dòng)作,就是選擇了分支后,點(diǎn)擊開始構(gòu)建,這里應(yīng)該是調(diào)用了相關(guān)API,然后傳參就是分支,順著這個(gè)思路,我們?nèi)タ纯凑{(diào)用了什么接口,發(fā)現(xiàn)頁面看不到調(diào)用了什么接口,這就可能需要去找官方文檔了,看看有沒有什么說明,使用過Python的同學(xué)應(yīng)該知道,里面提供了強(qiáng)大的類庫,其中就包括了jenkinsapi,可以直接使用
三、實(shí)現(xiàn)
公共代碼
# Jenkins地址和請(qǐng)求參數(shù) jenkins_url = 'http://xxx.xx.xxx.xxx:端口號(hào)' parameters = {'BRANCH': 'origin/dev-test-common'} def build_job_with_parameters(jenkins_url, job_name, parameters): jenkins = Jenkins(jenkins_url, username='forlan', password='forlanxxx') job = jenkins[job_name] return job.invoke(build_params=parameters)
單個(gè)服務(wù)版本
1、寫死某個(gè)服務(wù)
def baseWay(): job_name = 'Test-forlan' print(build_job_with_parameters(jenkins_url, job_name, parameters))
2、支持服務(wù)單選
options = [ "Test-forlan1", "Test-forlan2", "Test-forlan3" ] def oneChoiceWay(): while True: for i, option in enumerate(options): print(f"{i}: {option}") choice = int(input("Enter your choice : ")) if choice >= 0: print(options[choice], "重啟中") print(build_job_with_parameters(jenkins_url, options[choice], parameters)) elif choice == -1: break else: print("Invalid choice. Please try again.") print("----------------------------------\n") print("Loop exited.")
多服務(wù)版本
options = [ "Test-forlan1", "Test-forlan2", "Test-forlan3" ] def moreChoiceWay(): exitFlag = False while True: for i, option in enumerate(options): print(f"{i}: {option}") choiceStr = input("Enter your choices(split by ',') : ") choices = choiceStr.split(',') for choice in choices: choice = int(choice) if choice >= 0: print(build_job_with_parameters(jenkins_url, options[choice], parameters)) elif choice == -1: exitFlag = True break else: print("Invalid choice. Please try again.") print("----------------------------------\n") if (exitFlag): break print("Loop exited.")
最終實(shí)現(xiàn)效果
0: Test-forlan11: Test-forlan22: Test-forlan3Enter your choices(split by ',') : 1,2Test-forlan2 重啟中Test-forlan3 重啟中----------------------------------
0: Test-forlan11: Test-forlan22: Test-forlan3Enter your choices(split by ',') : -1----------------------------------
Loop exited.
將Python程序轉(zhuǎn)換為桌面可執(zhí)行文件(.exe)
安裝pyinstaller庫
pip install pyinstaller
安裝完畢后,使用以下命令將Python程序轉(zhuǎn)為exe文件:
pyinstaller Jenkins.py
這將在當(dāng)前目錄下生成dist文件夾,并在其中包含可執(zhí)行的exe文件。完成后,可以在桌面上找到生成的exe文件,雙擊運(yùn)行即可,效果如下:
到此這篇關(guān)于通過Python腳本+Jenkins實(shí)現(xiàn)項(xiàng)目重啟的文章就介紹到這了,更多相關(guān)Python Jenkins項(xiàng)目重啟內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyCharm中的terminal運(yùn)行從PS修改成cmd方式
這篇文章主要介紹了PyCharm中的terminal運(yùn)行從PS修改成cmd方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Anaconda虛擬環(huán)境配置Python庫與Spyder編譯器的方法
在文章創(chuàng)建Anaconda虛擬Python環(huán)境的方法中,我們介紹了在Anaconda環(huán)境下,創(chuàng)建、使用與刪除Python虛擬環(huán)境的方法,而創(chuàng)建虛擬環(huán)境后,就需要在對(duì)應(yīng)的環(huán)境內(nèi)配置各類庫與軟件,本文就對(duì)這些操作加以介紹,感興趣的朋友感興趣的朋友一起看看吧2024-04-04python使用Pandas導(dǎo)出數(shù)據(jù)并保存為CSV文件
Pandas是Python中用于數(shù)據(jù)分析和處理的強(qiáng)大庫,它提供了靈活高效的數(shù)據(jù)結(jié)構(gòu),如DataFrame和Series,使得對(duì)數(shù)據(jù)的處理變得簡單易行,在實(shí)際應(yīng)用中,我們經(jīng)常需要將處理后的數(shù)據(jù)保存為CSV,所以本文給大家介紹了python使用Pandas導(dǎo)出數(shù)據(jù)并保存為CSV文件2024-12-12用python寫一個(gè)windows下的定時(shí)關(guān)機(jī)腳本(推薦)
由于本人經(jīng)常使用筆記本共享WiFi,但是又不想筆記本開機(jī)一夜,每次都是使用dos命令關(guān)機(jī),感覺好麻煩,然后小編想到用python寫一個(gè)定時(shí)關(guān)機(jī)的腳本,具體實(shí)例代碼請(qǐng)參考本文2017-03-03python實(shí)現(xiàn)單張圖像拼接與批量圖片拼接
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)單張圖像拼接與批量圖片拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03Python 獲取windows桌面路徑的5種方法小結(jié)
今天小編就為大家分享一篇Python 獲取windows桌面路徑的5種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07