Articles of jenkins

在Tomcat7中设置JENKINS_HOME?

我试图在Ubuntu上的Tomcat7中设置Jenkins。 我安装了Tomcat7并部署了jenkins.war ,现在我在http://myhost:8080/jenkins看到Jenkins的主页,但是它试图在/usr/share/tomcat7/.jenkins上创buildJenkins目录,出于安全原因。 我已经创build了/srv/jenkins并赋予了tomcat7组权限,并且想要将JENKINS_HOME设置JENKINS_HOMEpath。 我试过把它添加到/etc/tomcat7/server.xml的tomcatconfiguration中: <GlobalNamingResources> <Environment name="JENKINS_HOME" value="/srv/jenkins" type="java.lang.String" override="false"/> <!– Default settings –> 我也试着将它添加到ROOT/META-INF/context.xml的自动创build的上下文文件中(据我所知,没有$CATALINA_HOME/conf )。 <Context path="/" antiResourceLocking="false" > <Environment name="JENKINS_HOME" value="/srv/jenkins/" type="java.lang.String"/> </Context> 但即使重新启动tomcat7我仍然得到相同的结果(试图使用/usr/share/tomcat7/.jenkins )。 我需要在Tomcat7中为JENKINS_HOME设置环境variables?

我怎样才能不经过重新编程修改jenkins作业configuration?

Jenkins作业具有存储该作业configuration的config.xml文件。 我有一个“工作经理”工作,修改其他工作的configuration,但我似乎无法得到它确认新的configuration,而无需重新启动jenkins。 jenkins-cli.jar命令行工具奇怪地似乎没有这个动作的选项。 可以通过Web界面编辑configuration,并且可以在不重新启动的情况下进行保存/确认,因此似乎不是技术上的不可能。 我最好的尝试是尝试并发布到Web界面的相同地址 wget –post-file=config.xml –user=joe.shmoe –password=secret01 \ –no-check-certificate \ https://jenkins.company.com/job/myProject/config.xml …但是,尽pipe使用了有效的证书(复制粘贴确保没有错别字) 任何人有任何想法或知道简单的东西我失踪?

允许匿名用户只查看作业列表而不浏览Jenkins中的工作区

我们正在运行Jenkins CI。 一般我们想提供 完全访问来自特定组的已authentication用户 全读取访问匿名用户 阻止匿名用户访问某些项目(完全) 我们使用Unix用户/组数据库和基于项目的matrix授权策略 。 点(1)和(2)运作良好,但是我们在实现(3)时遇到了问题。 我们试过了: 在全球安全移除所有的权利,匿名,然后授予基于项目的安全性,但之后,所有的匿名请求(甚至主Jenkins页面)产生login页面 在全球安全中增加以下权限的步骤:查看阅读(没有工作),工作发现(没有工作),工作阅读(没有工作),总体阅读 – 这最后一个似乎工作它给了匿名用户太多的权利,我们无法限制对特定项目的访问。 TL;博士 我们希望完全开放(阅读)jenkinsCI与几个项目完全隐藏/阻止匿名。

整合Amazon弹性容器registry与Jenkins

我试图将亚马逊的新弹性容器registry(ECR)与我的Jenkins构build服务相集成。 我正在使用Cloudbees Docker Build&Publish插件来构build容器映像并将其发布到registry中。 要使用ECR而不是我的私人registry,我已经运行了AWS CLI命令aws –region us-east-1 ecr get-login这会发出一个docker login命令来运行 – 但是我只是复制出密码并创build了一个Jenkins从该密码(用户名始终为“AWS”)键入“用户名和密码”凭据。 那工作正常! 问题是由AWS CLI生成的ECR密码只有12小时有效。 所以现在,我必须每天手动重新生成密码两次,并手动更新Jenkins凭据屏幕,否则我的构build开始失败。 有没有办法生成永久的ECRlogin令牌,或以某种方式自动化令牌生成?

触发Jenkins为GitLab Web钩子的合并请求构build

我希望Jenkins(1.561)通过合并请求Web钩子触发来构build提交给GitLab(6.7.5)的合并(拉)请求。 我有一个参数化版本,Jenkins插件“GitLab Merge Request Builder”(1.2.0)和“GitLab Hook”(1.0.0)。 迁移到jenkinsCI是不幸的,不是一个真正的select。 只要variablesgitlabMergeRequestId , gitlabTargetBranch和gitlabSourceBranch可用,合并请求生成器插件就可以构build合并请求。 当插件轮询版本库本身,或者我使用手动载荷触发构build时(例如curl –data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters ),但是我无法做到这一点一个钩子。 使用GitLab Hook插件,我可以在JSON负载中获取必要的数据,但是这些值有“错误”的键: gitlabMergeRequestId是id gitlabTargetBranch是target_branch gitlabSourceBranch是source_branch 我已经尝试使用GitLab Merge Request Builder插件的要求configuration构build参数作为Name和variables值作为Default Value 。 不幸的是(也许是有意的), Default Value字段中的variables不会被replace,所以Jenkins正在寻找一个id ${id}和类似分支值的合并请求。 我没有findconfigurationGitLab发送的负载的方法,GitLab Hook插件和GitLab Merge Request Builder插件使用的参数名称都没有configuration选项。 我正在考虑编写一个小的PHP脚本来拦截和改变POST的有效载荷,然后传递给Jenkins。 虽然我确信这会起作用,但它绝对看起来不必要的复杂。 我能看到的唯一的另一个实际选项是改变插件的来源,但这使得它们升级成PITA。 我忽略了一些显而易见的事情,还是真的没有简单的方法来触发合并请求的构build与从GitLab到Jenkins的Web钩子?

使用Jenkins和Sonar的SSL更正Apache反向代理configuration

我在Apache服务器后面运行两个服务:Jenkins(端口8080)和SonarQube(端口9000)。 我的apacheconfiguration如下所示: <VirtualHost *:80> ServerName server Redirect permanent / https://server.domain.com/ </VirtualHost> <VirtualHost *:80> ServerName server.domain.com Redirect permanent / https://server.domain.com/ </VirtualHost> <VirtualHost *:443> ServerName server.domain.com SSLEngine on SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key ProxyPass /jenkins http://localhost:8080/jenkins nocanon ProxyPassReverse /jenkins http://localhost:8080/jenkins ProxyPassReverse /jenkins http://server.domain.com/jenkins ProxyPassReverse /jenkins https://server.domain.com/jenkins ProxyPass /sonar http://localhost:9000/sonar nocanon ProxyPassReverse /sonar http://localhost:9000/sonar AllowEncodedSlashes NoDecode ProxyRequests Off ProxyPreserveHost […]

jenkins无法连接到git存储库

我不能以某种方式configurationgit存储库url,Jenkins可以访问它。 在“项目>configuration>源代码pipe理”下,我将存储库URL设置为“git @ store:repositories / testproject.git” 我得到这个错误: Failed to connect to repository : Command "/usr/bin/git -c core.askpass=true ls-remote -h git@store:repositories/testproject.git HEAD" returned status code 128: stdout: stderr: Permission denied, please try again. Permission denied, please try again. Permission denied (publickey,password). fatal: Could not read from remote repository. Please make sure you have the correct access […]

如何让jenkinsCI使用当地时间,而不是在debian挤压UTC

我有一个debian挤压jenkins安装。 当前默认时区:“美国/多伦多” 当地时间现在是星期一7月9日16:00:57 EDT 2012。 世界时间现在是:星期一7月9日20:00:57 UTC 2012。 在/ etc / default / rcS文件中我有: UTC =没有 不幸的是,这是行不通的,在jenkins的系统信息: user.timezone等/ UTC 我search了几个小时..不幸的是找不到修复任何帮助将不胜感激。 谢谢你的时间

允许非root用户重新启动服务

背景 : 我用Spring-boot创build了一个名为myapp的应用程序。 它由一个可自行执行的jar组成,并且与systemd服务兼容。 现在,我试图把它与jenkins整合。 我想要的是: 我想让jenkins能够: 停止服务。 更换jar子。 重新启动服务。 问题: 到目前为止,只有sudoers可以开始/停止服务。 我不希望jenkins成为一个sudoer(似乎凌乱)。 当前结构: 我有一个用户myapp有一个/home/myapp文件夹。 生成的jar被称为myapp ,放在/home/myapp 。 用户myapp是生成的jar的所有者: myapp@myserver:~/backend$ ll total 53900 drwxrwxr-x 2 myapp myapp 4096 Apr 25 17:09 ./ drwxr-xr-x 6 myapp myapp 4096 Apr 25 17:08 ../ -rw-rw-r– 1 myapp myapp 511 Apr 20 16:13 application.properties -rwxr–r– 1 myapp myapp 55175294 […]

在Jenkins构build步骤中开始一个永远的过程?

我在Jenkins部署结束时运行一个shell命令来重新启动永远脚本: npm install && forever stop app.js && forever start -a -l /var/log/forever.log app.js 当我作为用户jenkins运行时,一切正常,从构build历史logging的控制台输出也告诉我永远脚本正在运行。 但是,该过程在部署完成后立即停止,永久进程停止。 是什么导致了这种行为,我该如何解决?