tftp をインストールして構成するように Puppet モジュールを構成しようとしています。
これが私のモジュールの依存関係チェーンです (右側の項目には左側の項目が必要です)。
pxe::install --> pxe::config --> pxe::config2 --> pxe::service
pxe::config は、静的ファイルとディレクトリのみをコピーします。特に、
class pxe::config {
File {
owner => root,
group => root,
require => Class["pxe::install"],
}
file { "/var/lib/tftpboot":
ensure => directory,
recurse => true,
purge => false,
mode => 0755,
source => "puppet:///modules/pxe/tftpboot",
}
それは正常にコピーされます。
問題は、このディレクトリ内にテンプレートを配置したいということです。そこで pxe::config2 の出番です。
class pxe::config2 {
File {
ensure => present,
owner => root,
group => root,
mode => 0644,
require => [ Class["pxe::install"], Class["pxe::config"] ],
}
file { "/var/lib/tftp/pxelinux.cfg/default":
content => template("pxe/default.erb"),
}
}
エージェントを実行すると、次のエラーが表示されます。
エラー: /File[/var/lib/tftp/pxelinux.cfg/default]/ensure: 不在から現在への変更に失敗しました: 確認時に 'present を設定できませんでした: そのようなファイルまたはディレクトリはありません - /var/lib/tftp/pxelinux /etc/puppet/modules/pxe/manifests/config2.pp:14 の .cfg/default.puppettmp_5977
このエラーは、テンプレートの親ディレクトリが存在しないことを示しています。しかし、エージェントの実行後に確認したところ、/var/lib/tftp/pxelinux.cfg/ は存在しますが空です。
静的ディレクトリ /var/lib/tftp とテンプレート /var/lib/tftp/pxelinux.cfg/default を再帰的にコピーする方法を知っている人はいますか?
ありがとう、