Puppet manifest has a file declaration that somehow duplicates itself

前端 未结 4 1928
陌清茗
陌清茗 2020-12-21 07:06

Given the confusing error message:

err: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: File[/etc/logstas

4条回答
  •  余生分开走
    2020-12-21 07:16

    Defined types should not declare common resources, meaning such that are not derived from the define instances $name.

    In your example, the directory is a resource that many instances of your define need. It should therefor move to a (perhaps dedicated) class.

    class logstash::config_dir {
        file { "${logstash::params::config_dir}":
            ensure  => directory,
            owner   => root,
            group   => root,
            mode    => '0755',
            purge   => true,
        }
    }
    

    In your define, you just

    include logstash::config_dir
    

    Including a class multiple times poses no problem and solves exactly that problem (among others).

提交回复
热议问题