在 Amazon Linux 上安装期间如何向 jenkins 添加变量

How can I add a variable to jenkins during the install on Amazon Linux

我有一个变量需要添加为 Jenkins 环境变量,以便 $jenkins_home/init.d groovy 脚本可以使用它们。我在主机中设置了这个变量(我在其中安装 jenkins)- Amazon linux EC2 通过 /etc/profile.d 中的 .sh 文件并获取 /etc/profile 。这没有帮助,因为我无法从詹金斯访问变量。任何人都可以帮助我如何实现这一目标。

在 Jenkins 中,您可以使用下面给出的 groovy 脚本设置全局变量。您必须在用于配置 jenkins 服务器的 shell 脚本中使用它。这应该在安装后立即执行,这样 jenkins 就可以使用 then while 运行 jobs.

下面给出的groovy脚本一一创建环境变量, createGlobalEnvironmentVariables('Var1','DummyValue')

这会添加一个全局变量,名称为 Var1,值为 DummyValue

如果您有多个值,可以使用下面给出的值。 envVars.put("Key1", "Value1) envVars.put("Key2", "Value2)

在调用 instance.save() 之前。我们有一个 shell 脚本文件,该文件具有此功能和许多其他功能,可一次性安装和配置 jenkins。

import hudson.EnvVars;
import hudson.slaves.EnvironmentVariablesNodeProperty;
import hudson.slaves.NodeProperty;
import hudson.slaves.NodePropertyDescriptor;
import hudson.util.DescribableList;
import jenkins.model.Jenkins;

public createGlobalEnvironmentVariables(String key, String value){

        Jenkins instance = Jenkins.getInstance();

        DescribableList<NodeProperty<?>, NodePropertyDescriptor> globalNodeProperties = instance.getGlobalNodeProperties();
        List<EnvironmentVariablesNodeProperty> envVarsNodePropertyList = globalNodeProperties.getAll(EnvironmentVariablesNodeProperty.class);

        EnvironmentVariablesNodeProperty newEnvVarsNodeProperty = null;
        EnvVars envVars = null;

        if ( envVarsNodePropertyList == null || envVarsNodePropertyList.size() == 0 ) {
            newEnvVarsNodeProperty = new hudson.slaves.EnvironmentVariablesNodeProperty();
            globalNodeProperties.add(newEnvVarsNodeProperty);
            envVars = newEnvVarsNodeProperty.getEnvVars();
        } else {
            envVars = envVarsNodePropertyList.get(0).getEnvVars();
        }
        envVars.put(key, value)
        instance.save()
}
createGlobalEnvironmentVariables('Var1','DummyValue')