簡體   English   中英

Jenkins配置和安全問題

[英]Jenkins configuration and security issues

這是我第一次使用Jenkins而且我已經瀏覽了幾篇在線文章但卻找不到滿意的答案。 我們有.Net項目,我們正在使用私有GitHub存儲庫。 現在我正在嘗試使用Jenkins構建CI服務器。 想法是每當開發人員將代碼推送到GitHub時,我們想在CI服務器上構建項目。 我已經在CI服務器上安裝了Jenkins(v 1.646)和GitHub,Git和MSBuild插件。 在與詹金斯合作了幾個小時后,我現在有幾個問題。

1>默認情況下,Jenkins在端口8080上運行。但是為了持續集成工作,Jenkins必須從GitHub接收通知。 默認情況下,端口8080與外部世界隔離,在CI服務器端口80上打開。 我在Jenkins.xml文件中更新了httpport,因此Jenkins在端口80上運行。
我可以從公共互聯網訪問Jenkins,網絡鈎子網址現在是http:// ipaddress / github-webhook,但這會打開一個很大的安全漏洞,因為現在任何人都可以訪問Jenskins。 為了解決這個問題,我已經配置了全局安全性 - >基於項目的矩陣授權策略。 所以現在只有我可以登錄和管理項目。 但是,任何人仍然可以鍵入IP地址,登陸Jenkins頁面和創建新用戶帳戶。 Ofcource,用戶無法訪問任何東西,但仍然在Jenkins的數據庫中創建一個新用戶因此有一種方法像往常一樣在端口8080上運行Jenkins管理,但是在端口80上接收通知

2>在Jenkins的系統配置頁面上,我只看到“Git”和“GitHub插件配置”。 我沒有看到“GitHub Web Hook”選項,而且我沒有看到“讓Jenkins自動管理掛鈎URL”在版本1.646中有所改變

3>由於我們使用私有存儲庫,我們的項目URL是https://github.com/MyCompanyName/reponame ,存儲庫URL是https://github.com/MyCompanyName/reponame.git請注意,網址的公司名稱不是用戶名。 但我看到錯誤詹金斯登錄

無法從GitHubRepositoryName中刪除掛鈎[host = github.com,username = MyCompanyName,repository = reponame] java.lang.NullPointerException:沒有具有管理員權限的憑據來管理GitHubRepositoryName上的掛鈎[host = github.com,username = MyCompanyName,在com.google.common.base.Preconditions.checkNotNull(Preconditions.java:231)上的repository = reponame]

為什么它試圖使用companyname作為用戶名? 我已經設置了正確的用戶憑據,並且能夠提取代碼。

1)轉到配置全局安全性並取消選中“允許用戶注冊”以阻止創建新帳戶。

PIC1

2&3)如果您沒有管理員權限或不想管理Jenkins的掛鈎,請轉到配置系統/ Github插件配置部分並取消選中“管理掛鈎”。

PIC2

我會為像我這樣偶然發現的其他人添加第二個答案但無法通過上述步驟修復它:

1)確保從任務SCM配置中刪除trailling .git 在此輸入圖像描述

2)確保你已經在Jenns中設置了一個可以通過Github訪問的ip / domain,因為這將用於在你的repos中創建鈎子。 例如,如果您在VM中運行,則默認情況下可能會設置為環回 在此輸入圖像描述

導致Github中的這個錯誤配置 在此輸入圖像描述

3)使用http://your-jenkins-address:port/restart啟動Jenkins

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM