当前位置: 首页 > 知识库问答 >
问题:

如何在无需手动登录从机的情况下以编程方式启动Jenkins从机

丁成弘
2023-03-14

我们使用的是windows R2 2012 64位服务器。在未来,我们将有许多机器,我们将运行我们的詹金斯奴隶。我们想自动化詹金斯奴隶发射过程

我已经通过詹金斯的链接,但没有得到太多的帮助。

我还想知道如何安装同一套工具从主机到所有从机。

我做了谷歌,但没有找到任何关于这个主题的文章。

共有1个答案

宇文和同
2023-03-14

添加Windows从服务器的方法是使用一个脚本,该脚本:

>

  • 设置正确的环境变量,如java_home
  • 启动正确的java-jar slave.jar,使用在Jenkins master节点页中可以看到的新从服务器的密钥。
    要从主服务器到从服务器获取slave.jar,请在从Windows服务器上执行:

    curl -o slave.jar https://your.server/jenkins/jnlpJars/slave.jar
    

    使用NSSM将该脚本声明为Windows服务

    该脚本类似于agent.bat:

    set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0
    set PATH=D:\Tools\SonarRunner\bin;%PATH%
    set M2_HOME=D:\Tools\apache-maven-3.5.0
    set PATH=%M2_HOME%\bin;%PATH%
    set PATH=D:\Tools\apache-ant-1.9.3\bin;%PATH%
    set GH=D:\Tools\Git
    set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
    set PATH=%JAVA_HOME%\bin;%PATH%
    
    set WORKSPACE_FOLDER=D:\Jenkins\workspace
    set GIT_WORKSPACE_FOLDER=D:\Jenkins\workspace
    
    java -Xmx768m -jar slave.jar -jnlpUrl https://your.server/jenkins/computer/<SlaveName>/slave-agent.jnlp -secret 87ef3d...
    

    然后,该脚本作为Windows服务调用,由专用用户帐户运行:

    runas /user:<domain>\<jenkinsUser> cmd ( enter `jenkinsUser` Windows password )
    
    D:\Tools\nssm-2.24\win64\nssm.exe install <SlaveName> D:\Jenkins\agent.bat
    

    然后配置其Windows服务:

    sc config <SlaveName> obj= <domain>\<jenkinsUsers> password= <jenkinsUser password>
    sc config <SlaveName> start= auto
    
    echo 'println jenkins.model.Jenkins.instance.nodesObject.getNode("my-agent")?.computer?.jnlpMac' \
      | java -jar ~/Downloads/jenkins-cli.jar -s https://jenkins/ groovy =
    

  •  类似资料:
    • 问题内容: 我直接使用默认的os拨号器通过以下方式创建呼叫: 是否可以直接从我的应用程序启动Skype? 我尝试传递一个数字,如下所示: 传递数字失败。 问题答案: 您需要知道Skype软件包名称(例如com.skype.android),然后才能启动它:

    • 我正试图通过编程方式在Infinix手机中将我的应用程序作为受保护的应用程序进行检查。。但这似乎是不可能的,所以我正在尝试启动XManager中存在的受保护应用程序活动 我成功地通过这个代码打开了XManager 我不能按程序做其他事情 当我试图用此代码启动设置活动时 我有个例外 我也尝试直接启动受保护的应用程序,但我再次得到了同样的例外 更新 此异常的一些答案建议在我添加活动时添加以显示未解决的

    • 我想从一个谷歌文档中下载某个修订版。从Drive REST API v2中,我得到了以下链接:

    • 问题内容: 请看下面的代码 数据库连接器 数据库UI 在这种情况下,我需要通过右键单击 _数据库节点 启动服务器_来手动启动derby(我正在使用NetBeans)。这是一个嵌入式数据库,这意味着我要将其从一台计算机转移到另一台计算机,并愿意通过双击jar文件来开始,而不是在每台计算机上都配置数据库并手动启动它们。但是,如果我没有手动启动数据库,则会收到错误消息 java.sql.SQLNonTr

    • 请看一下下面的代码 数据库连接器。JAVA 用户界面 在这种情况下,我需要通过右键单击数据库节点手动启动derby(我使用的是NetBeans) JAVAsql。SQLNonTransientConnectionException:java。网ConnectException:连接到端口1527上的服务器本地主机时出错,消息“连接被拒绝:连接”。 无论是在NetBeans内部,如果我没有手动启动它

    • 我有一个kubernetes集群,安装了保险库(通过头盔图表)。 我想将机密从vault填充到pod中的文件(例如nginx),并每5分钟刷新一次机密。 我使用以下配置对其进行了测试(使用适当的vault策略/后端身份验证): namespace.yaml Service_account.yaml nginx-deployment.yaml 当我将此配置应用于kubernetes集群时,将创建部署