1

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 を再帰的にコピーする方法を知っている人はいますか?

ありがとう、

4

1 に答える 1

1

おそらくディレクトリ名のタイプミスのようです - ファイルは /var/lib/tftpboot ではなく /var/lib/tftp ディレクトリの下にあります。

于 2012-06-10T14:59:17.507 に答える