0

我有一个类函数,它使用 puppet 中的 package 方法下载包。

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 。使用模板并从文件中读取每个依赖项?或者任何其他通用方法都可以......

一个例子会很棒。

4

1 回答 1

1

您应该能够简单地在包中设置要求并将数组也传递给包:

 $my_packages = ['apache2', 'curl', 'wget']
 $my_dependencies = [File['a'], File['b'], User['tester']]

 package { $my_packages:
   ensure  => installed,
   require => $my_dependencies,
 }

使用这种类型的包应该足以满足您的需求。

但是,如果您想从文件中读取依赖项列表,您可以使用“模板”功能。IE。

 $my_dependencies = template('modulepath/templates/dependency_list.erb')

最后你的 dependency_list.erb 看起来像这样:

[File['a'], File['b'], User['tester']]

这就是它的全部内容!

有关更多信息,您可以查看http://docs.puppetlabs.com/guides/templating.html

于 2013-07-19T11:40:48.737 回答