gpt4 book ai didi

git - Jenkins 配置和安全问题

转载 作者:行者123 更新时间:2023-12-04 13:23:30 25 4
gpt4 key购买 nike

这是我第一次使用 Jenkins,浏览了几篇在线文章,但都没有找到满意的答案。我们有 .Net 项目,我们正在使用私有(private) GitHub 存储库。现在我正在尝试使用 Jenkins 构建 CI 服务器。想法是每当开发人员将代码推送到 GitHub 时,我们都希望在 CI 服务器上构建项目。
我已经在 CI 服务器上安装了 Jenkins (v 1.646) 和 GitHub、Git 和 MSBuild 插件。在与 Jenkins 合作了几个小时之后,我现在有几个问题。

1> 默认情况下,Jenkins 在端口 8080 上运行。但要使持续集成正常工作,Jenkins 必须从 GitHub 接收通知。默认情况下,端口 8080 与外界隔绝,在 CI 服务器上,端口 80 是开放的。我在 Jenkins.xml 文件中更新了 httpport,因此 Jenkins 在端口 80 上运行。
我可以从公共(public) Internet 访问 Jenkins,网络 Hook URL 现在是 http://ipaddress/github-webhook但这会带来一个很大的安全漏洞,因为现在任何人都可以访问 Jenskins。为了解决这个问题,我配置了全局安全 -> 基于项目的矩阵授权策略。所以现在只有我可以登录和管理项目。但是任何人仍然可以输入 IP 地址,登陆 Jenkins 页面并创建新用户帐户。 Ofcource 该用户无法访问任何内容,但仍会在 Jenkins 的数据库中创建一个新用户
那么有没有办法像往常一样在端口 8080 上运行 Jenkins 管理,但在端口 80 上收到通知

2> 在 Jenkins 的系统配置页面上,我只看到“Git”和“GitHub 插件配置”。我没有看到“GitHub Web Hook”选项,也没有看到“让 Jenkins 自动管理 Hook URL”在 1.646 版中有所更改

3> 由于我们使用的是私有(private)仓库,所以我们的项目 URL 是 https://github.com/MyCompanyName/reponame并且存储库 URL 是 https://github.com/MyCompanyName/reponame.git请注意,该网址具有公司名称而不是用户名。但我看到错误 Jenkins 日志

Failed to remove hook from GitHubRepositoryName[host=github.com,username=MyCompanyName,repository=reponame] java.lang.NullPointerException: There is no credentials with admin access to manage hooks on GitHubRepositoryName[host=github.com,username=MyCompanyName,repository=reponame] at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:231)



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

最佳答案

我将为像我这样偶然发现但无法通过上述步骤修复的其他人添加第二个答案:

1) 确保删除尾随 .git从您的任务 SCM 配置
enter image description here

2) 确保您在 Jenkins 中设置了 Github 可以访问的 IP/域,因为这将用于在您的存储库中创建 Hook 。例如,如果您在 VM 中运行,这可能会默认设置为环回
enter image description here

在 Github 中导致这个错误的配置
enter image description here

3) 使用 http://your-jenkins-address:port/restart 重启 Jenkins

关于git - Jenkins 配置和安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35056008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com