[Puppet Users] Re: Conditional copy of file

Ryan Bowlby
2012-02-01T22:28:41Z

Wrap the file resource in an if that checks if $conf_file is defined.
I would also recommend replacing the case statement with a
parametrized class with the default for $conf_file being undef.

Also, if you were okay with having a default blank file present then
you could just replace your current case statement with a list to the
file source attribute:

  file { "/path/to/my/file":
    source => [
      "/modules/nfs/files/file.$host",
      "/modules/nfs/files/file"
    ]
  }

http://docs.puppetlabs.com/references/2.7.0/type.html




On Feb 1, 6:21 am, kashif <kashif.a...@gmail.com>
wrote:
> Hi
> It may have been answered earlier but I could not find anywhere. My
> requirement is that I want to copy a file from server to agent in few
> conditions but don''t want to touch file in rest of the condition
>
> class example {
>               case $hostname {
>                         node1 : {$conf_file = ''file1''}
>                         node2:  {$conf_file = ''file2''}
>                         }
>                  file { ''/etc/network/test'':
>                          ensure  => file,
>                          source => "puppet:///modules/example/
> $conf_file",
>                        }
>               }
>
> It is working but I want that  in case none of the above condition is
> true then ''test'' file should not be touched.
> But what is happening here that, if hostname is different from node1
> or 2 then puppet creates a empty test directory in /etc/network/
> folder.
> Any suggestion ?
> thanks
> Kashif