本节是正在进行的工作。想帮忙?看看必威国际有限公司jenkinsci-docs邮件列表.要了解为Jenkins项目做出贡献的其他方法,请参见必威国际有限公司这个页面是关于参与和贡献的. |
必威国际有限公司Jenkins代理是詹金斯控制器要求所要求的“工人”。Jenk必威国际有限公司ins控制器管理代理商,可以管理代理商的工具。必威国际有限公司Jenkins代理可以静态分配,或者可以通过像Kubernetes,OpenShift,Amazon EC2,Azure,Google Cloud,IBM Cloud,Oracle Cloud,Andd其他云提供商等系统动态分配。
Darin Pope在这30分钟的教程中创建了一个Jenkins代理,并将其连接到控制器上。必威国际有限公司
该脚本可以监视并重启未手动断开连接的离线节点。它可以在Jenkins脚本控制台中执行,也可以作为J必威国际有限公司enkins作业定期运行Groovy插件.
也看到查看节点信息
进口hudson.node_monitors。*进口hudson.slaves。*进口java . util . concurrent . *必威国际有限公司詹金斯= Jenkins.instance进口javax.mail.internet。*;进口javax.mail。*进口javax.activation。*defsendMail(agent, cause) {message = agent +"代理。检查http://JENK必威国际有限公司INS_HOSTNAME JENKINS_PORT /电脑/"+代理+"\ n因为"+ cause subject = agent +"代理是离线"toaddress ="必威国际有限公司JENKINS_ADMIN@YOUR_DOMAIN"fromAddress ="必威国际有限公司JENKINS@YOUR_DOMAIN"主机="SMTP_SERVER"端口="SMTP_PORT"属性mprops =新属性();mprops.setProperty ("mail.transport.protocol","smtp");mprops.setProperty ("mail.host",主持人);mprops.setProperty ("mail.smtp.port.port.",港口);会话lsession = session.getdefaultinstance(mprops,零);MimeMessage味精=新MimeMessage (lSession);//在他们作为列表中的情况下授权收件人StringTokenizertok =新StringTokenizer(讲话,";");ArrayListemailTos =新ArrayList();而(tok.hasMoreElements ()) {emailTos.add (新.toString InternetAddress (tok.nextElement () ()));} InternetAddress[]=新InternetAddress [emailTos.size ());= (InternetAddress[]) emailTos.toArray ();msg.setRecipients (MimeMessage.RecipientType.TO);InternetAddress fromAddr =新InternetAddress (fromAddress);msg.setFrom (fromAddr);msg.setFrom (新InternetAddress (fromAddress));msg.setSubject(主题);msg.setText(message) Transport transporter = session . gettransport ("smtp");transporter.connect ();transporter.send(味精);}defGetEnviron.(计算机){defenvdef线程=线程.start ("获得env$ {computer.name}",{env = computer.environment})thread.join(2000)如果thread.interrupt() env}defagentAccessible(计算机){getEnviron(计算机)? . get ('路径') ! =零}defnumberOfflineNodes =0defnumberNodes =0为(代理在必威国际有限公司jenkins.getNodes ()) {defprintln = agent.computer numberNodes ++ println""println."检查计算机$ {computer.name}:"defisOK = (agentAccessible(computer) && !computer.offline)如果(isOK) {println"\ t\ t从agent那里得到了PATH$ {computer.name}."println ('\ tcomputer.isOffline:'+ computer.isOffline ());println ('\ tcomputer.isTemporarilyOffline:'+ computer.isTemporarilyOffline ());println ('\ tcomputer.getOfflineCause:'+ computer.getOfflineCause ());println ('\ tcomputer.offline:'+ computer.offline);}其他的{numberOfflineNodes ++ println . println . println . println . println . println . println"错误:无法从代理商中获取路径$ {computer.name}."println ('\ tcomputer.isOffline:'+ computer.isOffline ());println ('\ tcomputer.isTemporarilyOffline:'+ computer.isTemporarilyOffline ());println ('\ tcomputer.getOfflineCause:'+ computer.getOfflineCause ());println ('\ tcomputer.offline:'+ computer.offline);.toString sendMail (computer.name computer.getOfflineCause () ())如果(computer.isTemporarilyOffline ()) {如果.contains .toString (! computer.getOfflineCause () () ("断开连接了")) {computer.setTemporarilyOffline (假, agent.getComputer().getOfflineCause())}}其他的{computer.connect (真正的)}}} println ("离线节点数:"+ numberOfflineNodes) println ("的节点数量:"+ numberNodes)
请通过这个提交你对这个页面的反馈快速形成.
或者,如果您不希望完成快速表单,您可以简单地指出,如果您觉得这个页面有帮助?