Jenkins配置和安全问题

时间:2016-01-28 08:14:00

标签: git github jenkins github-api

这是我第一次使用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 [主机= github.com,用户名= MyCompanyName,库= reponame]   java.lang.NullPointerException:admin没有凭据   访问管理挂钩   GitHubRepositoryName [主机= github.com,用户名= MyCompanyName,库= reponame]     在   com.google.common.base.Preconditions.checkNotNull(Preconditions.java:231)

为什么它尝试使用companyname作为用户名?我已经设置了正确的用户凭据,并且能够提取代码。

2 个答案:

答案 0 :(得分:7)

1)转到配置全局安全性并取消选中“允许用户注册”以阻止创建新帐户。

pic1

2& 3)如果您没有管理员权限或者不想管理Jenkins的挂钩,请转到配置系统/ Github插件配置部分并取消选中“管理挂钩”。

pic2

答案 1 :(得分:3)

我会为像我这样偶然发现的其他人添加第二个答案,但无法通过上述步骤解决问题:

1)确保从任务SCM配置中删除了跟踪type the documentation

2)确保你已经在Jenns中设置了一个可由Github访问的ip / domain,因为这将用于在你的repos中创建钩子。例如,如果您在VM中运行,则默认情况下可能会设置为环回 enter image description here

在Github中导致此错误配置 enter image description here

3)使用.git

重启Jenkins