Jenkins Windows Настройка ведомого с помощью Winsw не работает - PullRequest
2 голосов
/ 24 марта 2020

Используя эту информацию https://hayato-iriumi.net/2019/05/23/how-to-install-jenkins-slave-as-windows-service/ мы настраиваем подчиненное устройство Jenkins на Windows сервере. Дженкинс агент запускается из командной строки. но когда мы начинаем с Windows сервиса, его выдача ниже сообщения об ошибке? Как устранить это сообщение об ошибке?

Service cannot be started. System.IO.InvalidDataException: Attribute <className> is missing in configuration XML
   at winsw.Util.XmlHelper.SingleAttribute[TAttributeType](XmlElement node, String attributeName)
   at winsw.Extensions.WinSWExtensionDescriptor.FromXml(XmlElement node)
   at winsw.Extensions.WinSWExtensionManager.LoadExtension(String id)
   at winsw.Extensions.WinSWExtensionManager.LoadExtensions()
   at winsw.WrapperService.OnStart(String[] args)
   at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

xml файл у нас есть

<service>
  <id>JenkinsSlave</id>
  <name>Jenkins agent</name>
  <description>This service runs an agent for Jenkins automation server.</description>
  <executable>c:\java\jdk-11\bin\java.exe</executable>
  <arguments>-Xrs -jar "c:\jenkins\slave.jar" -jnlpUrl https://jenkinsmaster/jenkins/computer/slave01/slave-agent.jnlp -secret a4b5b4ddfd34a016cd3a8eb94cbe8f908613e33a66db5fa6f5f43a080aea3116 -workDir=c:\jenkins</arguments>
  <workingdirectory>c:\jenkins</workingdirectory>
  <logmode>rotate</logmode>
  <onfailure action="restart">
    <download from="https://jenkinsmaster/jenkins/jnlpJars/slave.jar" to="c:\jenkins\slave.jar"> 
        <extensions>
            <extension enabled="false" classname="winsw.Plugins.RunawayProcessKiller.RunawayProcessKillerExtension" id="killOnStartup">
                <pidfile>c:\jenkins\jenkins_agent.pid</pidfile>
                <stoptimeout>5000</stoptimeout>
                <stopparentfirst>false</stopparentfirst>
            </extension>
        </extensions>
    </download>
  </onfailure>
</service>

Спасибо

1 Ответ

1 голос
/ 24 марта 2020

В образце "Jenkins-Slave. xml" есть некоторые ошибки, представленные на связанной веб-странице (на которой, по-видимому, основана ваша). В нем все элементы и атрибуты названы в нижнем регистре, но на самом деле некоторые из них должны быть в смешанном регистре (как видно из сообщения об ошибке, что он не находит атрибут className).

Попробуйте вместо этого :

<service>
  <id>YourJenkinsSlaveServiceId</id>
  <name>Your Jenkins Slave Service Name</name>
  <description>This service runs an agent for Jenkins automation server.</description>
  <executable>C:\Program Files\Java\JRE8\bin\java.exe</executable>
  <arguments>-Xrs -jar "%BASE%\slave.jar" -jnlpUrl http://YourJenkinsServer:8080/computer/YourNodeName/slave-agent.jnlp -secret YourSecretStringConsistingOfHexadecimalCharacters -workDir=C:\YourNodeWorkDir</arguments>
  <logmode>rotate</logmode>
  <onfailure action="restart" />
  <download from="http://YourJenkinsServer:8080/jnlpJars/agent.jar" to="%BASE%\slave.jar"/>
 <extensions>
    <extension enabled="true" className="winsw.Plugins.RunawayProcessKiller.RunawayProcessKillerExtension" id="killOnStartup">
      <pidfile>%BASE%\jenkins_agent.pid</pidfile>
      <stopTimeout>5000</stopTimeout>
      <stopParentFirst>false</stopParentFirst>
    </extension>
  </extensions>
</service>

Это из более подробного объяснения того, как установить агент как Windows сервис, который я дал в этом ответе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...