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

Jenkins Swarm插件-Evironmental变量

王佐
2023-03-14

我有最新的Jenkins和使用它最新的Swarm插件。

我已经编写了Ansible module/roles/playbooks,用于在给定的目标节点(我希望将其用作Swarm slave节点)上设置、安装各种工具/配置

在Ansible playbook运行完成后,我现在看到一个新的从服务器被创建并附加到我的Jenkins master上,但是Swarm插件的文档(可用选项)没有提到如何在从服务器中创建环境变量。https://wiki.jenkins-ci.org/display/jenkins/swarm+plugin

>

  • 如何在同一台目标机器上创建多个从机,并且它们都有自己的设置,用于设置各种工具,如JAVA_HOME、M2_HOME、GRADLE_HOME、PATH等。

    如何使用Swarm插件为从机设置环境变量?这是必需的,就好像我创建了一个缺省JAVA为jdk1.7.0_67的从机,然后我想创建另一个缺省JAVA_HOME为jdk1.8.0_45的从机。类似地,最终目标是在可能的情况下使用不同的工具来获得不同风格的从属程序,其中每个从属程序的工具略有不同。我将相应地分配标签,并在Jenkins作业的配置中使用它,这样,如果关联的标签被分配/绑定到作业上,作业就只能使用/在这些从属上运行。

    我尝试使用https://github.com/movingblocks/groovyJenkins/blob/master/src/main/groovy/addnodeToJenkins.groovy,但不确定如何在从机配置中自动定义/设置环境变量。

  • 共有1个答案

    卫彭亮
    2023-03-14

    我假设您在这里运行的是Linux。

    在调用Swarm-Client之前,可以使用shell脚本导出新环境。这些变量将由新的群从服务器https://unix.stackexchange.com/questions/130985/if-processes-inherite-the-parents-environment-why-do-we-need-export继承

    或者,您可以运行docker,拥有一个单独的swarm从容器https://hub.docker.com/r/csanchez/jenkins-swarm-slave/,并将特定的安装放入Dockerfile中,并在Dockerfile底部添加一个新的入口点

    ENTRYPOINT ["/usr/local/bin/jenkins-slave.sh" \
        "-labels", "label1", "-labels", "label2"]
    
     类似资料:
    • 问题内容: 我正在将Jenkins与Testswarm和此插件一起使用(派生资源)。 我想为Testswarm获取一个“工作名称”,其中包含詹金斯的工作名称,内部版本号和svn修订版号。 将JOB_NAME放在配置字段中无济于事,该变量不会被其值替换。 因此,我修改了插件源代码以获取Jenkins环境变量,但我得到的只是“空”变量。 这是罪魁祸首代码。(在第205行的src / main / ja

    • This is the directories where Smarty will look for the plugins that it needs. Default is "plugins" under the SMARTY_DIR. If you supply a relative path, Smarty will first look under the SMARTY_DIR, the

    • 问题内容: 我想访问git变量,例如和当我从git流中进一步从git中检出存储库时。目前,我找不到可用的变量来访问这两个参数。 这样的变量是否可用,以防万一,在哪里可以找到它们。我不介意它们是否可以通过一些时髦的变量或在任何地方可用,只是我可以访问它们。 也许我缺乏Groovy的调试技能,这很容易找到,但是我有限的技能却找不到它。 问题答案: 我现在要解决此问题的好方法是使用多分支管道,并且可能很

    • (类初始化)https://github.com/cardflight/android-demo/blob/master/android-demo/src/com/example/cardflight/mainactivity.java#l67 (调用)https://github.com/cardflight/android-demo/blob/master/android-demo/src/c

    • 所以我只想创建一个hello world应用程序,事情就这样发生了 构建文件'C:\User\Yuness\AndroidStudioProjects\MyApplication 2\build.gradle'行:3 在以下任何来源中均未找到插件[id:'com.android.application',版本:'7.1.2',apply:false]: 尝试:使用--info或--debug选项运

    • 问题内容: 在Jenkins中,我使用参数化的构建。我将“名称”设置为SVN_TAG,使用了“此构建已参数化”和“列出子版本标签”。然后,在“设置内部名称”中将此SVN_TAG设置为“ $ {SVN_TAG}”。但是,该版本然后显示“’$ {SVN_TAG}中的无法识别的宏’SVN_TAG’””,并且它没有设置版本名称。关于为什么构建找不到该宏的任何想法? 问题答案: 如果单击“构建名称”字段旁边