On Jun 20, 2011, at 3:37 PM, Jacob Helwig wrote:

> On Mon, 20 Jun 2011 15:11:09 -0700, Craig White wrote:
>> Date: Mon, 20 Jun 2011 15:11:09 -0700
>> From: Craig White <craig.wh...@ttiltd.com>
>> To: puppet-users@googlegroups.com
>> Subject: Re: [Puppet Users] confused about file ensure/require
>> X-Mailer: Apple Mail (2.1084)
>> Message-Id: <290592db-a4cd-4982-9eb0-4c5d09d2e...@ttiltd.com>
>> 
>> 
>> On Jun 20, 2011, at 2:35 PM, Jacob Helwig wrote:
>> 
>>> On Mon, 20 Jun 2011 14:17:46 -0700, Craig White wrote:
>>>> 
>>>> my base/default includes this ntp manifest
>>>> 
>>>> # cat modules/ntp/manifests/ntp.pp
>>>> # ntp.pp
>>>> 
>>>> class ntp {
>>>> case $operatingsystem {
>>>>  centos, redhat: { 
>>>>    $service_name = 'ntpd'
>>>>    $conf_file = 'ntp.conf.el'
>>>>  }
>>>>  debian, ubuntu: { 
>>>>    $service_name = 'ntp'
>>>>    $conf_file = 'ntp.conf.debian'
>>>>  }
>>>> }
>>>> 
>>>> package { 'ntp':
>>>>  ensure => installed,
>>>> }
>>>> 
>>>> service { 'ntp':
>>>>  name => $service_name,
>>>>  ensure => running,
>>>>  enable => true,
>>>>  subscribe => File['ntp.conf'],
>>>> }
>>>> 
>>>> file { 'ntp.conf':
>>>>  path => '/etc/ntp.conf',
>>>>  ensure => file,
>>>>  require => Package['ntp'],
>>>>  source => "puppet:///ntp/files/${conf_file}",
>>>> }
>>>> }
>>>> 
>>>> # class {'ntp': }
>>>> 
>>>> So my questions...
>>>> 
>>>> 1. I tested this by moving /etc/ntp.conf on my test client but it doesn't 
>>>> seem to replace the file though it clearly says 'ensure => file'
>>>>  Is my understanding wrong?
>>>> 
>>> 
>>> That should replace the file.  What output are you getting (if
>>> anything)?
>>> 
>>> % cat ../test.pp
>>> file { 'blab':
>>>  path    => '/tmp/blab.txt',
>>>  ensure  => 'file',
>>>  content => 'asdf',
>>> }
>>> 
>>> % puppet apply ../test.pp
>>> notice: /Stage[main]//File[blab]/ensure: defined content as 
>>> '{md5}912ec803b2ce49e4a541068d495ab570'
>>> notice: Finished catalog run in 0.06 seconds
>>> 
>>> % rm /tmp/blab.txt
>>> 
>>> % puppet apply ../test.pp
>>> notice: /Stage[main]//File[blab]/ensure: defined content as 
>>> '{md5}912ec803b2ce49e4a541068d495ab570'
>>> notice: Finished catalog run in 0.06 seconds
>>> 
>>> % puppet apply ../test.pp
>>> notice: Finished catalog run in 0.04 seconds
>>> 
>>>> 2. Files ntp.conf.el & ntp.conf.debian are located in 
>>>> /etc/puppet/modules/ntp/files   - source => 
>>>> 'puppet://puppet:///ntp/files/${conf_file} is this correct?
>>>> 
>>> 
>>> You should include 'modules' in the 'puppet://' URI, since the form
>>> without it has been deprecated for a while.  IIRC it should look
>>> something like:
>>> 
>>> puppet:///modules/ntp/files/${conf_file}
>> -----
>> I sort of think it should just work but it doesn't
>> 
>> # mv /etc/ntp.conf /root/
>> root@ubuntu:/var/www/puppet-dashboard# puppet agent --test --verbose 
>> --server ubuntu.ttinet
>> info: Retrieving plugin
>> info: Caching catalog for ubuntu.ttinet
>> info: Applying configuration version '1308606646'
>> notice: Finished catalog run in 0.14 seconds
>> 
>> still no /etc/ntp.conf
>> 
>> root@ubuntu:/var/www/puppet-dashboard# puppet apply 
>> /etc/puppet/modules/ntp/manifests/ntp.pp
>> notice: Finished catalog run in 0.01 seconds
>> 
>> above is what I got from the 'puppet apply' command and before from puppet 
>> agent command, neither replaced /etc/ntp.conf and neither indicated an error.
>> 
>> root@ubuntu:/var/www/puppet-dashboard# ls -l /etc/ntp.conf
>> ls: cannot access /etc/ntp.conf: No such file or directory
>> 
>> and this was after I changed the source as you indicated...
>> 
>> # tail -n 5 /etc/puppet/modules/ntp/manifests/ntp.pp
>>   source => "puppet:///modules/ntp/files/${conf_file}",
>> }
>> }
>> 
>> # class {'ntp': }
>> 
>> Craig
>> 
> 
> Doesn't look like you're including the ntp class?
> 
> The line that would do it is commented out in
> /etc/puppet/modules/ntp/manifests/ntp.pp, if you're going to apply
> /etc/puppet/modules/ntp/manifests/ntp.pp directly.
----
I thought it should work at least for the 'puppet agent' commands...

# cat manifests/site.pp 
import "templates"
import "nodes"
import "modules"

root@ubuntu:/etc/puppet# cat manifests/templates.pp
class baseclass {
}

node default {
    include baseclass
    include ntp
    include facts
}

and the nodes all have

include baseclass

in them

Craig

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to