Puppet 如何使用模板或其他通用方法改进类函数
我有一个类函数,它使用puppet中的package方法下载包Puppet 如何使用模板或其他通用方法改进类函数,puppet,configuration-management,system-administration,puppetlabs-apache,Puppet,Configuration Management,System Administration,Puppetlabs Apache,我有一个类函数,它使用puppet中的package方法下载包 class package { define install( $dependence=File[$dummy_dependence_file]) { package { $name: ensure => "installed", require => $dependence, } } } 我现在在init.pp中使用它,就像这样 # install d
class package {
define install( $dependence=File[$dummy_dependence_file])
{
package { $name:
ensure => "installed",
require => $dependence,
}
}
}
我现在在init.pp中使用它,就像这样
# install dependencies
$dependence_list = ['glibc.i686','wget','gcc']
#
# ==Actions
# Install glibc, gcc, wget dependency for running sybase
#
# ==Requires
# * http proxy to be setup to get around jpm proxy
package::install { $dependence_list:
dependence => File[ $http_setup_name ],
}
我希望这个方法更加通用。是否可以不使用依赖项数组(我每次都需要编辑init.pp)。要使用模板并从文件中读取每个依赖项?或者任何其他通用方法都可以
举个例子就好了。您应该能够简单地在包中设置需求,并将数组传递给包:
$my_packages = ['apache2', 'curl', 'wget']
$my_dependencies = [File['a'], File['b'], User['tester']]
package { $my_packages:
ensure => installed,
require => $my_dependencies,
}
使用这种类型的软件包应该足以满足您的需要
但是,如果要从文件中读取依赖项列表,可以使用“模板”功能。即
$my_dependencies = template('modulepath/templates/dependency_list.erb')
最后是dependency_list.erb,如下所示:
[File['a'], File['b'], User['tester']]
这就是它真正的意义所在
有关更多信息,请参见这与我上面的功能相同。很抱歉,我添加了一些有关立即使用模板的信息。为了完整性,您可以添加dependency_list.erb的示例吗?:-D