Puppetはマニフェストの変更を反映しません。

Puppetはマニフェストの変更を反映しません。

モジュールマニフェストがありますwork.pp。を実行して確認すると、事実は適切な値を持ちます。しかし、私のファイルには次の条件があります。has_work/lib/facter/work.rbpuppet agent -tfacter -p has_workwork.pp

if ($has_work)            { $create_file = true }

その後、これに基づいて$create_file次の内容があります。

if ($create_file) {
    file {
      "create file":
        path    => "/path/to/file.ini",
        alias   => "/path/to/file.ini",
        ensure  => file,
        owner   => devops,
        mode    => "0644",
    }

ただし、これは$has_work本当ですが、クライアントにファイルは生成されません。

なぜこれが起こるのかを調べようとしています。助けてくれてありがとう。ありがとうございます!

ベストアンサー1

構文が正しいか誤って貼り付けられているかわからない場合は、開発にPDKを使用することをお勧めします。したがって、モジュールで次のことを試してくださいexample。名前を付けてみましょう。

$ tree example
├── manifests
│   └── init.pp
└── examples
    └── init.pp
$ cat manifests/init.pp
class example {
  if ($create_file) {
    file { "/path/to/file.ini":
      alias   => "/path/to/file.ini",
      ensure  => file,
      owner   => "devops",
      mode    => "0644",
    }
  }
}
$ cat examples/init.pp

include example

次のコマンドを使用してコードをテストします。

puppet apply examples/init.pp --noop

また、Puppet Console UI(Puppet Enterprise)でテストする場合は、チャートを確認してリソースが管理されていることを確認してください。

コーディングスタイルの観点からは、if clause実装によって管理されるリソースの量が異なるため、使用しないことをお勧めします。これが次のためのものかどうか疑問に思いますif

  • .ini対管理したくない
  • .iniこのファイルはすでに作成されており、手動で変更されている可能性があるため、このファイルを変更/作成したくありません。

2回目の場合は、以下を使用したい場合がありますfile_line(参照文書)

おすすめ記事