这听起来像是一个微不足道的问题,但事实是这样的:
- 我获取了最新版本的 Jenkins 作为 Windows 的原生安装程序(我的情况是 1.491)
- 我设置了 Windows Server 2012(官方发布映像,无候选版本)并安装了所有更新
- 我尝试运行 Jenkins 安装。
安装过程中,除了尝试启动服务的部分外,一切都运行正常。此时,我被告知我没有足够的权限来启动系统服务。这在 2k8R2 上一直运行正常,没有任何问题。我以管理员身份登录,该管理员是在服务器安装期间创建的,也是机器上唯一的用户。
我收到的完整信息是:
服务“Jenkins”(Jenkins)启动失败。请验证您是否具有足够的权限来启动系统服务。
还有人遇到这些问题吗?我猜 Server 2012 的内部结构已经改变了安装方式,而 Jenkins 安装程序不是为此构建的。
如果有人可以告诉我必须将管理员添加到哪个组,或者可以为我提供解决此问题的解决方法,这将大有帮助。
答案1
您需要安装 .net 3.5(即使您已经安装了 .net 4+)
您可以通过服务器管理器执行此操作:
- 配置本地服务器
- 添加角色和功能
- 单击“下一步”,直到进入功能部分
- 选中 .net 3.5 复选框(为了确保万无一失,我还选中了子项)
- 如果您收到需要指定备用路径的警告,那么:
- 插入您的 Windows 安装媒体。
- 单击“指定备用源路径”
- 放目录:在路径字段中(单击“确定”)
- 单击“安装”
完成此操作后,您应该能够通过 msi 安装程序安装 Jenkins。现在它将能够成功启动 Jenkins 服务。
我思考Jenkins 尝试安装 .net 3.5,但由于安装介质“丢失”,它挂起了(因为它在后台运行),这就是它实际上超时的原因
答案2
我终于成功了!
我不仅需要安装 .NET 3.5(感谢 DarcyThomas),而且我还发现我需要在安装目录中添加一个配置文件。
在安装目录中添加一个名为 jenkins.exe.config 的文件,其内容如下:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
事实证明,启动服务时,Windows 会尝试访问互联网以下载证书,以确认可执行文件的签名者。因此,在我服务器无法访问互联网的情况下,它会失败。我在这里找到了解决方案。
我希望这可以让其他人免于我刚刚经历的痛苦。干杯。
答案3
我找到了一个基于此的解决方案Jan 的回答问题是 Windows 正在寻找服务的证书,而您的服务器无法访问互联网。最好的选择是启用服务器的互联网访问权限以安装 Jenkins。安装 Jenkins 后,您将不再需要它。
您也可以尝试通过这种方式禁用证书检查(尽管我不确定这是否有效。)
1)创建目录:C:\Program Files (x86)\Jenkins
2)创建一个名为jenkins.exe.config
3)在文本文件中添加以下文本:
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
4)以Administrator
答案4
创建一个仅在 Windows 启动时执行的 Windows 计划任务。在某些 Windows 发行版下,将 Jenkins 作为服务运行根本行不通。这种方法虽然有点儿老套,但确实有效。我已经在多个 Windows 节点上使用了这种方法。
我个人认为 Windows 上的 Jenkins 文档在这方面需要进一步完善。也许在这方面还需要做更多的工作……
我希望这有帮助。