我有一个变量需要添加为 Jenkins 环境变量,以便 $jenkins_home/init.d groovy 脚本可以使用它们。我在主机中设置了这个变量(我正在安装 jenkins) - Amazon linux EC2 通过 /etc/profile.d 中的 .sh 文件并获取 /etc/profile 。这没有帮助,因为我无法从詹金斯访问变量。任何人都可以帮助我如何实现这一目标。
问问题
54 次
1 回答
0
在 Jenkins 中,您可以使用下面给出的 groovy 脚本设置全局变量。您必须在用于配置 jenkins 服务器的 shell 脚本中使用它。这应该在安装后立即执行,以便詹金斯可以在运行作业时使用。
下面给出的 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')
于 2020-11-15T13:39:12.817 回答