在模块中重载人偶默认参数
Overload puppet default parameter in module
我想使用我自己的 Jenkins 插件服务器来获取插件。我正在使用 puppet-jenkins 模块,但我似乎无法更改默认插件主机值
code on github 在 manifests/params
中有这个:
class jenkins::params {
..
$default_plugins_host = 'https://updates.jenkins-ci.org'
..
}
所以当我使用这个 class 时,如果我说:
class { 'jenkins':
default_plugins_host => "https://myhost.local"
}
我得到Puppet (err): Invalid parameter
或者,如果我尝试使用大写字母定义值:
Jenkins::Params {
default_plugins_host => "https://specificallybrokenhost.com"
}
木偶不使用它。我通过给它一个不存在的插件主机来测试它,期望插件安装失败;但它能够成功获得插件(我的假设是它仍然使用 jenkins-ci.org)
我能够通过在 library-jenkins/puppet-jenkins
内本地处理整个模块并更改值来实现此功能,但我不想不得不诉诸于此
我正在使用 puppet-librarian 和 Puppet 3.3,如果有帮助的话。
params.pp 文件存储私有变量。这不能被覆盖。
查看模块显示您可以更改 plugin.pp
的第 67-82 行的 url
if $version {
$plugins_host = $update_url ? {
undef => $::jenkins::default_plugins_host,
default => $update_url,
}
$base_url = "${plugins_host}/download/plugins/${name}/${version}/"
$search = "^${name} ${version}$"
}
else {
$plugins_host = $update_url ? {
undef => $::jenkins::default_plugins_host,
default => $update_url,
}
$base_url = "${plugins_host}/latest/"
$search = "${name} "
}
$plugins_host 将使用 update_url(如果已定义)而不是 default_plugins_host。如果您在插件定义类型上设置默认值,您可以像这样将 default_plugins_host 更改为 update_url;
Jenkins::Plugin {
source_url => 'mycompany.jenkins.com',
}
我自己还没有测试过。所以,让我知道它是否有效。
我想使用我自己的 Jenkins 插件服务器来获取插件。我正在使用 puppet-jenkins 模块,但我似乎无法更改默认插件主机值
code on github 在 manifests/params
中有这个:
class jenkins::params {
..
$default_plugins_host = 'https://updates.jenkins-ci.org'
..
}
所以当我使用这个 class 时,如果我说:
class { 'jenkins':
default_plugins_host => "https://myhost.local"
}
我得到Puppet (err): Invalid parameter
或者,如果我尝试使用大写字母定义值:
Jenkins::Params {
default_plugins_host => "https://specificallybrokenhost.com"
}
木偶不使用它。我通过给它一个不存在的插件主机来测试它,期望插件安装失败;但它能够成功获得插件(我的假设是它仍然使用 jenkins-ci.org)
我能够通过在 library-jenkins/puppet-jenkins
内本地处理整个模块并更改值来实现此功能,但我不想不得不诉诸于此
我正在使用 puppet-librarian 和 Puppet 3.3,如果有帮助的话。
params.pp 文件存储私有变量。这不能被覆盖。
查看模块显示您可以更改 plugin.pp
的第 67-82 行的 urlif $version {
$plugins_host = $update_url ? {
undef => $::jenkins::default_plugins_host,
default => $update_url,
}
$base_url = "${plugins_host}/download/plugins/${name}/${version}/"
$search = "^${name} ${version}$"
}
else {
$plugins_host = $update_url ? {
undef => $::jenkins::default_plugins_host,
default => $update_url,
}
$base_url = "${plugins_host}/latest/"
$search = "${name} "
}
$plugins_host 将使用 update_url(如果已定义)而不是 default_plugins_host。如果您在插件定义类型上设置默认值,您可以像这样将 default_plugins_host 更改为 update_url;
Jenkins::Plugin {
source_url => 'mycompany.jenkins.com',
}
我自己还没有测试过。所以,让我知道它是否有效。