在 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')
我有一个变量需要添加为 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')