sure i am right now changing it from bash to ruby. Brijesh
On Jun 30, 10:55 am, Craig White <[email protected]> wrote: > I should reiterate that you should use the interactive ruby shell, irb to > test your code to make sure that it runs within ruby. > > You really should be using ruby for everything that you possibly can. If you > can learn bash programming then ruby should be a piece of cake and provide > readability down the road and actually make it a lot more fun and bring sense > to the coding and structure within puppet too. > > Craig > > On Jun 29, 2011, at 3:22 PM, brijesh wrote: > > > Thank You Very Much Craig > > > that worked. > > > On Jun 30, 9:12 am, Craig White <[email protected]> wrote: > >> I don't know about 'factsync' on client 'puppet.conf > > >> on my puppet clients, having > >> [main] > >> ... > >> pluginsync=true > > >> seems to run the custom facts automatically > > >> Craig > > >> On Jun 29, 2011, at 2:02 PM, brijesh wrote: > > >>> Hi Craig, > > >>> Thanks for your reply. I understand your concern about using ruby code > >>> instead of shell but my question how can i deploy this custom fact. > >>> The code has no error if i copy this fact into > >>> /usr/lib/ruby/1.8/facter and then run > >>> facter curtime it returns the output. > > >>> The only thing is how can deploy this fact to all the clients? > > >>> On Jun 30, 4:52 am, Craig White <[email protected]> wrote: > >>>> On Jun 29, 2011, at 1:16 AM, brijesh wrote: > > >>>>> Hi > > >>>>> I have been having issue with deploying my custom facts. I have gone > >>>>> through wiki on puppet labs and few other blogs but has no luck so > >>>>> far. May be i am not understanding puppet very well. I would really > >>>>> appreciate if someone helps me with this. I have the following fact i > >>>>> want to deploy. > > >>>>> Facter.add("curtime") do > >>>>> setcode do > >>>>> %x{ foo=`date +%k` ; if [ "$foo" -ge 00 -o "$foo" -le 06 ] ; then > >>>>> echo "true"; fi } > >>>>> end > >>>>> end > > >>>>> I have created following directory structure > > >>>>> /etc/puppet/modules/common > >>>>> /etc/puppet/modules/common/lib/facter/curtime.rb > >>>>> /etc/puppet/modules/common/files > >>>>> /etc/puppet/modules/common/manifests/init.pp <- this file is empty > > >>>>> on the puppet server i added the following to the /etc/puppet/ > >>>>> puppet.conf > > >>>>> pluginsync = true > >>>>> modulepath = /etc/puppet/modules > >>>>> factpath = $vardir/facts > > >>>>> on the client i have added > >>>>> factsync = true to the puppet.conf > > >>>>> When i run puppetd on client i can't see the new fact curtime also on > >>>>> the server i should be able to see the curtime fact under /var/lib/ > >>>>> puppet/facts. > > >>>>> I am running puppetmasterd and client - 0.25.4 > > >>>>> Any help would be appreciated. > > >>>> ---- > >>>> If your custom fact has any errors, the fact will never work. You don't > >>>> have to go searching for 'facts' - on any particular machine you should > >>>> be able to just run from cli... > > >>>> facter (NAME OF FACT) - i.e. facter curtime > > >>>> I also neglected to mention that there really is no reason whatsoever to > >>>> resort to shell just to do date things because ruby has a very rich > >>>> 'Date' class built-in. > > >>>> irb(main):001:0> require 'date' > >>>> => true > >>>> irb(main):002:0> d = Date.today > >>>> => #<Date: 4911483/2,0,2299161> > >>>> irb(main):003:0> y = d.wday > >>>> => 3 > > >>>> irb(main):001:0> require 'date' > >>>> => true > >>>> irb(main):002:0> d = Date.today > >>>> => #<Date: 4911483/2,0,2299161> > >>>> irb(main):003:0> y = d + 3 > >>>> => #<Date: 4911489/2,0,2299161> > >>>> irb(main):004:0> z = y.strftime("%m-%d-%Y") > >>>> => "07-02-2011" > > >>>> Craig -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
