管理节点

本节是正在进行的工作。想帮忙?看看必威国际有限公司jenkinsci-docs邮件列表.要了解为Jenkins项目做出贡献的其他方法,请参见必威国际有限公司这个页面是关于参与和贡献的

创建代理

必威国际有限公司Jenkins代理是詹金斯控制器要求所要求的“工人”。Jenk必威国际有限公司ins控制器管理代理商,可以管理代理商的工具。必威国际有限公司Jenkins代理可以静态分配,或者可以通过像Kubernetes,OpenShift,Amazon EC2,Azure,Google Cloud,IBM Cloud,Oracle Cloud,Andd其他云提供商等系统动态分配。

Darin Pope在这30分钟的教程中创建了一个Jenkins代理,并将其连接到控制器上。必威国际有限公司

如何在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_DOMAINfromAddress =必威国际有限公司JENKINS@YOUR_DOMAIN主机=SMTP_SERVER端口=SMTP_PORT属性mprops =属性();mprops.setProperty (mail.transport.protocolsmtp);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 ++ printlnprintln.检查计算机$ {computer.namedefisOK = (agentAccessible(computer) && !computer.offline)如果(isOK) {println\ t\ t从agent那里得到了PATH$ {computer.nameprintln (\ 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.nameprintln (\ 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)


这个页面有用吗?

请通过这个提交你对这个页面的反馈快速形成

或者,如果您不希望完成快速表单,您可以简单地指出,如果您觉得这个页面有帮助?

是的


在这里.