Articles of jenkins

杀死进程,不断重新启动自己

我需要一些关于如何彻底杀死jenkins进程的build议。 它不断重新启动。 在Mac OSX上。 $ps -eaf 216 1143 1 0 0:01.65 ?? 0:04.03 /usr/bin/java -jar /Applications/Jenkins/jenkins.war 试图杀死这个过程… kill 1143 该过程仍然存在于不同的pid下 $ps -eaf 216 1175 1 0 0:00.16 ?? 0:01.44 /usr/bin/java -jar /Applications/Jenkins/jenkins.war 父进程启动。 我该怎么办? 0 1 0 0 0:06.09 ?? 0:06.19 /sbin/launchd

如何在Systemd上使用Jenkins自动重启

我有Jenkins在CentOS7上运行,它不时有崩溃,我想在这种情况发生时自动重启。 谷歌一点点我发现,在Systemd上,你可以使用Restart = on-failure,但问题是从我看到的Jenkins不使用服务文件。 如果我做systemctl状态jenkins.service我得到: ● jenkins.service – LSB: Jenkins Continuous Integration Server Loaded: loaded (/etc/rc.d/init.d/jenkins) Active: active (running) since Mon 2016-02-29 17:30:08 UTC; 11min ago 所以看起来它仍然使用init.d? 任何想法如何在这种情况下,我可以使用此Restart=on-failure ?

你怎么能添加一个命令行testingjenkins读取退出代码?

我想为Jenkins添加一个命令行脚本作为构build过程的一部分。 如果成功的话,这个命令行脚本将会以一个错误代码0退出,如果失败,它将退出666 。 如果脚本失败,我希望停止构build。 是否有可能使用Jenkins做到这一点? 如果这样怎么样?

我怎样才能使jenkins对外界无法进入?

在开发服务器上,我安装了Jenkins工具进行自动化testing。 这在端口8080上运行。如果我去www.mysite.com:8080我可以看到这个命令面板。 我想通过使用Apache的密码保护它使外部世界无法访问。 (我的服务器运行Ubuntu 12.04 LTS)。 我阅读了以下页面以获得一般build议,特别是关于安全性的主题,他们提出了以下设置: <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/opt/apache/httpd/htdocs" ServerName jenkins.yourdomain.com ErrorLog "logs/jenkins-error_log" ProxyPass /jenkins/ ajp://127.0.0.1:8102/jenkins/ ProxyPassReverse /jenkins/ ajp://127.0.0.1:8102/jenkins/ <Location /> Order allow,deny Allow from all </Location> <Location /jenkins/> AuthType basic AuthName "jenkins" AuthUserFile "/opt/apache/httpd/conf/.htpasswd" </Location> </VirtualHost> 我的Apache文件目前有以下设置: <VirtualHost *:80> # Admin email, Server Name (domain name), and any aliases ServerAdmin […]

使用主/从Jenkins服务器vs维护3个独立的服务器?

背景: 我是一名软件开发人员,他在configuration持续集成解决scheme方面有一定的经验,但我不太了解某些持续集成策略的优缺点,并且希望得到关于两种服务器pipe理策略的好处和挑战的build议。 题: 我们有3个独立的,复杂的Android应用程序,我正在创build持续集成服务器。 我成功地创build了一个运行Windows Server 2008的原型虚拟机,它成功地编译了代码,启动了一个模拟器并运行了Androidunit testing。 另外我也可以运行我们希望运行在这个代码上的静态分析,以便为开发者提供反馈。 在之前使用CruiseControl.NET而不是jenkins的configuration中,我们成功地维护了3个独立的虚拟机,所有虚拟机均具有独立的虚拟化硬件。 这种设置的好处是分区 – 一个项目可以改变他们的构build服务器,而不会影响到其他项目。 然而,转移到Jenkins,我注意到它支持主/从节点 ,这可以让我configuration一个Jenkins主实例多个项目,然后configuration一些奴隶节点,据我所知,将执行任何Jenkins任务 – 编译,unit testing,静态分析并将这些信息传回给主服务器。 这个设置的好处似乎是: 可伸缩性 – 我可以轻松地添加第4或第5个项目,并保持相同数量的从站 仅需要设置1个主站和3个从站,这可能比3个独立的主站更容易设置。 这种情况的挑战似乎是: 我将不得不学习如何创build奴隶 我将不得不处理客户和奴隶之间的沟通 我可能会遇到需要UI交互的unit testing的问题 – 描述如何运行无头的奴隶 是否还有其他直接的好处或挑战,我忘记了,还是有经验的jenkins有意见,哪种方法更合适?

Jenkins / Hudson – LDAP组*查找*不起作用

我试图让jenkins通过我们的活动目录组进行身份validation。 如果我插入用户,他们正确查找。 如果我插入组名称,则不会find它们。 编辑:通过试验和错误我已经发现,通过组的身份validation 确实工作 ,也就是说,一旦我将KS-Soft组添加到列表中,该组中的用户就可以login 。 但是 ,在input用户名和组名的列表中,Jenkins会尝试显示一个图标,确定它是用户还是组。 用户图标显示正确,但组图标始终是错误图标。 所以看起来jenkins可以通过组员身份validation用户身份,但是却无法validation目录中是否存在给定的组名string。 这在技术上甚至可能吗? (也许只是图标显示搞砸了。) jenkins设置如下:(注意: mydomain和com用户名是不同的,其余的是确切的值) Server : ldap://ks-dc01.mydomain.com:389 root DN : dc=mydomain,dc=com User Search Base : ou=KSUser User Search Filter : userPrincipalName={0} Group search base : ou=KSGroups Manager DN : CN=Placeholder Martin,OU=Benutzer,OU=KSUser,DC=mydomain,DC=com Manager Password : ***** 通过这个设置,我将用户[email protected]到列表中,Jenkins然后可以查找这个用户并且我可以login。 不过,我不能让jenkins解决组名。 我使用AD Explorer确认我的组实际上低于OU=KSGroups 。 我在这里有一个组在AD Explorer中显示为CN=KS-Soft ,它有一个member属性,列出所有我感兴趣的用户(用户[email protected]被列为CN=Placeholder Martin,OU=Benutzer,OU=KSUser,DC=mydomain,DC=com在这个属性。 […]

jenkins(Windows服务)通过SSH与Git

我很难configurationJenkins,作为Windows服务运行,连接到git服务器(gitosis)并克隆存储库。 jenkins被设置为使用标准的Git插件 。 一切都由我们托pipe:Jenkins服务器在win.foo.com ,gitosis在linux服务器( git.foo.com )上运行。 如果我将RDP放入win.foo.com我可以win.foo.com克隆( git.exe clone –progress -o origin [email protected]:myproject.git myproject ),而不会出现问题。 Jenkins作为服务运行,并且因为它没有在同一用户帐户下运行,所以我已将.ssh文件夹复制到%SystemRoot%\System32\config\systemprofile (在%USERPROFILE%环境variables中定义)和C:\Program Files (x86)\Git\ ,但这些似乎都没有拿起由jenkins,即使完全重新启动。 我试过使用git.exe和git.cmd ; 两种情况都没有喜乐。 Jenkins失败,并显示以下错误消息: ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:myproject.git ERROR: Cause: Error performing command: C:\Program Files (x86)\Git\cmd\git.cmd clone –progress -o origin [email protected]:myproject.git C:\Program Files (x86)\Jenkins\jobs\myproject\workspace Command "C:\Program Files […]

远程SSH命令挂起,但只有通过Jenkins执行时

免责声明:我是一个新的社区,请温柔:) 我有一个SSH问题,我似乎无法解释。 作为一个背景,这里是我正在解决的问题: 环境中存在多个不同的Java服务,需要通过通用接口进行部署。 logging这些服务必须定向到系统日志工具。 通用接口必须通过命令行和Jenkins GUI访问。 我开始看到问题的时候,我添加了redirect到系统日志。 如果我删除了系统日志redirect,一切工作正常。 下面是调用来执行Java进程的代码片段(为了可读性而对其进行了精简): /bin/java myJavaProgram -DvariousFlags=true &> >(logger -p local3.info -t "my prefix") 2>&1 & 这里是我的头脑有点难以理解的地方 – 如果我运行从jenkins作为Jenkins用户的服务器调用这些脚本的命令,该命令就起作用。 如果我通过Jenkins GUI运行它,那么这个工作就会挂起。 我在Jenkins中运行以下命令: ssh -t [email protected] 'appctl restart all' 2>/dev/null 我已经用#!/bin/bash -x标志确认脚本到达了它的末尾。 当我用ssh -vvv运行时,以下是输出的最后一行: debug1:client_input_channel_req:channel 0 rtype退出状态回复0 任何想从哪里去这里? 是否有更好的方法来完成系统日志function? 我的pipe道有问题吗?

jenkins发布ssh成功连接服务器,但失败的put文件

我有一个问题,当我build立我的工作,它不能把我的文件在控制台输出服务器目录我得到的消息“错误:发布exception,exception消息[权限被拒绝]” 我有以下日志输出: SSH: Connecting from host [rp_ci] SSH: Connecting with configuration [web-dev] … SSH: Creating session: username [ubuntu], hostname [xx.xx.xx.xxx], port [22] SSH: Connecting session … SSH: Connected SSH: Opening SFTP channel … SSH: SFTP channel open SSH: Connecting SFTP channel … SSH: Connected SSH: Remote root is not absolute, getting absolute directory from PWD […]

jenkins:等待下一位可以执行的主人,4名工人闲置

我有一个jenkins(最初是1.596.2,后来升级到.3)在Ubuntu的主,有一些工作。 上个星期我开始看到工作正在排队(等待下一个可用的执行者)。 我检查了工作configuration(限制在哪里可以运行这个项目),它说标签中的从机:1.主工人都报告空闲。 我升级到1.596.3,重新启动节点,但经过几个小时的工作(大约10-12),它开始把工作放在队列中,尽pipe工人闲置。 它没有任何奴隶,有足够的资源(节点是8GB的RAM和500GB的磁盘的虚拟机),并且在dmesg或日志中没有错误。 我能做些什么来解锁它? 谢谢,埃德