通過Python腳本+Jenkins實現(xiàn)項目重啟
一、需求
微服務(wù)項目,服務(wù)很多,重啟服務(wù),基本都是通過Jenkins進(jìn)行發(fā)布,過程差不多如下:
1、登錄后臺,選擇環(huán)境和服務(wù),如下圖:
2、點擊“Build_with_Parameters”,彈出窗口,選擇分支,然后點擊“開始構(gòu)建”,如下圖:
通過上面的操作,就會進(jìn)入構(gòu)建隊列排隊,如果系統(tǒng)沒有正在構(gòu)建的,很快就可以在構(gòu)建執(zhí)行狀態(tài)中看到,受到Maven項目配置的執(zhí)行者數(shù)量的限制,如下圖,公司限制的是同一時間只能有3個在構(gòu)建中
所以,當(dāng)需要重啟很多個服務(wù)時,需要每個都去重復(fù)上面的步驟,選環(huán)境-》選服務(wù)-》Build_with_Parameters-》選分支-》開始構(gòu)建,賊麻煩,很影響效率,這也是我寫這篇文章的原因,下面和大家分享下我的解決方案
二、分析
其實上面最終就是觸發(fā)構(gòu)建動作,就是選擇了分支后,點擊開始構(gòu)建,這里應(yīng)該是調(diào)用了相關(guān)API,然后傳參就是分支,順著這個思路,我們?nèi)タ纯凑{(diào)用了什么接口,發(fā)現(xiàn)頁面看不到調(diào)用了什么接口,這就可能需要去找官方文檔了,看看有沒有什么說明,使用過Python的同學(xué)應(yīng)該知道,里面提供了強(qiáng)大的類庫,其中就包括了jenkinsapi,可以直接使用
三、實現(xiàn)
公共代碼
# Jenkins地址和請求參數(shù) jenkins_url = 'http://xxx.xx.xxx.xxx:端口號' 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)
單個服務(wù)版本
1、寫死某個服務(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.")
最終實現(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實現(xiàn)項目重啟的文章就介紹到這了,更多相關(guān)Python Jenkins項目重啟內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyCharm中的terminal運(yùn)行從PS修改成cmd方式
這篇文章主要介紹了PyCharm中的terminal運(yùn)行從PS修改成cmd方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教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)境后,就需要在對應(yīng)的環(huán)境內(nèi)配置各類庫與軟件,本文就對這些操作加以介紹,感興趣的朋友感興趣的朋友一起看看吧2024-04-04python使用Pandas導(dǎo)出數(shù)據(jù)并保存為CSV文件
Pandas是Python中用于數(shù)據(jù)分析和處理的強(qiáng)大庫,它提供了靈活高效的數(shù)據(jù)結(jié)構(gòu),如DataFrame和Series,使得對數(shù)據(jù)的處理變得簡單易行,在實際應(yīng)用中,我們經(jīng)常需要將處理后的數(shù)據(jù)保存為CSV,所以本文給大家介紹了python使用Pandas導(dǎo)出數(shù)據(jù)并保存為CSV文件2024-12-12用python寫一個windows下的定時關(guān)機(jī)腳本(推薦)
由于本人經(jīng)常使用筆記本共享WiFi,但是又不想筆記本開機(jī)一夜,每次都是使用dos命令關(guān)機(jī),感覺好麻煩,然后小編想到用python寫一個定時關(guān)機(jī)的腳本,具體實例代碼請參考本文2017-03-03Python 獲取windows桌面路徑的5種方法小結(jié)
今天小編就為大家分享一篇Python 獲取windows桌面路徑的5種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07