適用されるモジュールの順序に依存レベルがあります。
class build() {
# define order
Class['base'] -> Class['config'] -> Class['app'] -> Class['sso']
class { 'base' : ... }
class { 'config' : ... }
# etc
}
class base::init.pp () {
class { 'base::prereqs' : ... }
class { 'base::worker' :
require => Class['base::prereqs']
...
}
}
# etc etc
次の場合にエラーが発生しbase::prereqs
ます。
define base::prereqs::file () { ... }
class base::prereqs () {
$files = [ 'file_name', ... ]
base::prereqs::file { $files : }
}
必要な順序は、base::init --> base::prereqs --> base::worker --> config::init --> config::prepreqs --> config::worker --> app::init です。 ...
ただし、定義を使用した実際の順序は...
base::init --> base::prereqs (define で作成されたリソースを除く) --> config::init --> config::prereqs --> ... --> base:prepreqs (define で作成されたリソース) ) --> ベース::ワーカー
内部の順序base
は一貫していますが、上のレベルでorder
は、リソースが内部に追加されたことを認識していないようで、完了したprereqs
と見なされbase
ます。
何か助けはありますか?
パペット v3.6.2 (パペット エンタープライズ 3.3.2)