Thanks guys for your input. That's correct I am looking to act upon another 
file's nonexistence... I will go with facter.

On Friday, May 31, 2013 2:57:56 PM UTC+2, Matthias Saou wrote:
>
> Hi, 
>
> Indeed, I had missed that John was mentioning two different files 
> ("config.php" vs. "autoconfig.php"). In that case, my only bit of 
> (useless) advice is : You're not using puppet in the way it's most 
> efficient, as it's not meant to manage nodes based on changes it 
> doesn't make itself. 
>
> Custom fact, it is... 
>
> Matthias 
>
> Dan White <[email protected] <javascript:>> wrote: 
>
> > That is an excellent example, but I think you miss the original point: 
> > 
> > Your example deals with only one file resource - the dot-gitconfig 
> > file Suppose you only wanted to perform this action if git was 
> > installed on the system, and do nothing if it was not ? 
> > 
> > This additional requirement puts it closer to the original question 
> > and this is where a custom fact is called for in the opinion of 
> > several folks on the list including myself. 
> > 
> > If you can offer an example that demonstrates otherwise, I would 
> > welcome it. I do not believe it possible without the custom fact and 
> > I have several hours of frustrated tinkering to show for it.  I 
> > wanted to set a parameter in a config file but only if (the config 
> > file exists and/or the associated package is installed) and found I 
> > could not do it completely from within the manifest. 
> > 
> > “Sometimes I think the surest sign that intelligent life exists 
> > elsewhere in the universe is that none of it has tried to contact 
> > us.” Bill Waterson (Calvin & Hobbes) 
> > 
> > ----- Original Message ----- 
> > From: "Matthias Saou" <[email protected] <javascript:>> 
> > To: [email protected] <javascript:> 
> > Sent: Friday, May 31, 2013 4:00:15 AM 
> > Subject: Re: [Puppet Users] Run a File resource only if another file 
> > is missing 
> > 
> > There are other ways. None are nice and clean, but a custom fact just 
> > for this seems overkill. 
> > 
> > Here's a quick example of how I've implemented creating a default 
> > ~/.gitconfig for users if it doesn't exist, but not modify it if it's 
> > already there or has been modified. 
> > 
> >     $gitconfig_user_name = $mymodule::uservar::fullname[$title] 
> >     $gitconfig_user_email = "${[email protected] <javascript:>" 
> >     file { "${home}/.gitconfig": 
> >       owner   => $owner, 
> >       group   => $group, 
> >       mode    => '0644', 
> >       require => Exec["create-gitconfig-${title}"], 
> >     } 
> >     exec { "create-gitconfig-${title}": 
> >       command => template('mymodule/user/gitconfig.erb'), 
> >       require => User[$title], 
> >       creates => "${home}/.gitconfig", 
> >     } 
> > 
> > The gitconfig.erb has the following content : 
> > /bin/cat > <%= home %>/.gitconfig << EOF 
> > [user] 
> >         name = <%= @gitconfig_user_name %> 
> >         email = <%= @gitconfig_user_email %> 
> > EOF 
> > 
> > Basically, just don't have either 'source' nor 'content' for your file 
> > resource, and create the initial content using an exec with the 
> > 'creates' condition. 
> > 
> > Matthias 
> > 
> > Dan White <[email protected] <javascript:>> wrote: 
> > 
> > > Short Answer: You need to create a custom fact that would drive the 
> > > decision to create the new file resource. 
> > > 
> > > I just went thru this issue and also performing an action based on 
> > > whether or not a package (RPM in my case) is installed. 
> > > 
> > > Same answer to both. 
> > > 
> > > For the existence of a file, you can do this: 
> > > 
> > > #!/bin/bash 
> > > test -f /var/www/owncloud/config/config.php 
> > > rc=$? 
> > > echo "is_my_file_there=${rc}" 
> > > 
> > > That goes into /etc/facter/facts.d/ as an executable shell script 
> > > and then in your manifest: 
> > > 
> > > if $::is_my_file_there != 0 { 
> > >    file { 'autoconfig.php': 
> > >    ..... 
> > >    } 
> > > } 
> > > 
> > > 
> > > “Sometimes I think the surest sign that intelligent life exists 
> > > elsewhere in the universe is that none of it has tried to contact 
> > > us.” Bill Waterson (Calvin & Hobbes) 
> > > 
> > > ----- Original Message ----- 
> > > From: "John Naggets" <[email protected] <javascript:>> 
> > > To: [email protected] <javascript:> 
> > > Sent: Thursday, May 30, 2013 4:04:29 PM 
> > > Subject: [Puppet Users] Run a File resource only if another file is 
> > > missing 
> > > 
> > > Hi, 
> > > 
> > > I would like to run the File resource below: 
> > > 
> > > file { 'autoconfig.php': 
> > > path => '/var/www/owncloud/config/autoconfig.php', 
> > > ensure => file, 
> > > owner => 'www-data', 
> > > group => 'www-data', 
> > > content => template("owncloud/autoconfig.php.erb"), 
> > > } 
> > > 
> > > only when a specific file (in my 
> > > case: /var/www/owncloud/config/config.php) is missing. Is this 
> > > somehow possible? Couldn't find my case in the puppet 
> > > documentation... 
> > > 
> > > Thanks! 
> > > John 
> > > 
> > > 
> > 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to