我需要通過Jenkins UI使用登錄的用戶憑證執行Jenkins作業中的少數作業,例如「發佈到生產」。原因是,我們有單獨的支持團隊成員,他們有權訪問生產盒,而不是開發團隊成員。因此,爲了將任何代碼部署到生產環境中,所有Windows Deploy命令(例如,創建,更新文件,文件夾等)都需要使用特定的用戶憑證運行,並且可以訪問Production Box。因此,即使是無法訪問生產箱但是Jenkins Admin的開發團隊成員執行相同的作業,也會因「訪問被拒絕」而導致失敗。只有在支持團隊成員擁有其憑證的情況下,該工作才能成功。我們如何使用其他用戶憑證執行Jenkins作業
我嘗試使用參數化插件,但無法將密碼成功傳遞到包含MSDeploy指令的批處理文件。即使Jenkins控制檯日誌也會顯示在其控制檯輸出中傳遞的參數,這是一個安全問題。
我檢查了基於角色的安全插件,但這並沒有多大幫助。我只需要一個插件,它應該在開始構建作業之前要求用戶提供他們的憑證,並且應該使用用戶憑證來執行作業,以便我的MSDeploy命令能夠在生產框中部署代碼,團隊成員使用他們的憑證構建該作業。我希望有人支持模仿。
現在所有Jenkins Jobs都使用服務帳戶執行,Tomcat服務被配置爲運行Jenkins所在的服務帳戶。
任何幫助,將不勝感激。
感謝您的回覆。 「您可以將作業配置爲使用一組通用生產憑證,然後阻止開發人員調用該作業。」不知道我們該怎麼做,因爲開發團隊在Jenkins Web服務器以及Jenkins Web應用程序上都是Admin。我的方案是我想要一個「Release To Production」作業,它在Production Web Server上執行MSDeploy命令。但問題在於,hudson作業使用運行Tomcat服務的服務帳戶的憑據執行,並在其上部署了hudson。此服務帳戶不能訪問prod Web服務器。 – user1233802
@ user1233802如果你的開發人員是詹金斯的管理員,你不能真正限制他們的訪問權限......設置第二個Jenkins僅僅用於部署是可選的,但是在那個階段爲什麼不考慮使用rundeck來分離構建和部署的責任?開發人員可以對Rundeck進行有限的訪問,使其能夠部署到開發和測試系統,但無法訪問生產Rundeck項目。 –
嗯,這可能是一個選項。但理想情況下,我希望在另一個用戶的環境下執行作業,而不是在Tomcat使用Jenkins託管的用戶帳戶環境下執行。我會嘗試rundeck,但是有可能在其他用戶的憑證下執行rundeck作業(這是我感興趣的模擬)或rundeck也使用Tomcat正在使用的用戶帳戶?請幫忙 – user1233802