0

パペットで 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,
 }

このタイプのパッケージを使用するだけで十分です。

ただし、ファイルから依存関係リストを読み取りたい場合は、「テンプレート」機能を使用できます。すなわち。

 $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 に答える