I''m trying to create a new module. When I try to create a module it looks like it is not finding the module. I created a new Type, provider called "arquivo". The structure looks like: modules/ ├── arquivo │ ├── lib │ │ └── puppet │ │ ├── provider │ │ │ └── arquivo │ │ │ └── arquivo.rb │ │ └── type │ │ └── arquivo.rb │ └── manifests │ └── init.pp My type is the folowing: module Puppet newtype(:arquivo) do @doc = "Manage a file (the simple version)." ensurable newparam(:name) do desc "The full path to the file." end newproperty(:mode) do desc "Manage the file''s mode." defaultto "640" end end And my provider looks like: Puppet::Type.type(:arquivo).provide(:arquivo) do desc "Normal Unix-like POSIX support for file management." def destroy File.unlink(@resource[:name]) end def exists? p "exists?" File.exists?(@resource[:name]) end def create p "create" File.open(@resource[:name], "w") { |f| f.puts "" } # Create an empty file # Make sure the mode is correct should_mode = @resource.should(:mode) unless self.mode == should_mode self.mode = should_mode end end # Return the mode as an octal string, not as an integer. def mode p "getmode" if File.exists?(@resource[:name]) "%o" % (File.stat(@resource[:name]).mode & 007777) else :absent end end # Set the file mode, converting from a string to an integer. def mode=(value) File.chmod(Integer("0" + value), @resource[:name]) end end The manifest that I created is: class arquivo { arquivo {"arquivo": ensure => present , name => "/tmp/teste", mode => 777 } } class file { file { "/tmp/bla": ensure => present } } node "cliente.britania" { include arquivo, file } When I run the puppet from my client (puppetd -td) I can see the new file "bla" created by the class file, but I don''t find any file created by the class "arquivo" (I guess my module is not running). myfileserver.conf: [files] path /etc/puppet/files allow 10.0.0.0/8 [plugins] allow 10.0.0.0/8 All other puppet configurations are default and I''m using Ubuntu 10.10. -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
I will be in #puppet or #puppet-dev for the next hour or so (as bodepd), I am more than happy to work through this with you. On Sun, Nov 7, 2010 at 9:55 AM, Otacilio Lacerda <otaciliolacerda@gmail.com>wrote:> I''m trying to create a new module. When I try to create a module it > looks like it is not finding the module. I created a new Type, > provider called "arquivo". The structure looks like: > > modules/ > ├── arquivo > │ ├── lib > │ │ └── puppet > │ │ ├── provider > │ │ │ └── arquivo > │ │ │ └── arquivo.rb > │ │ └── type > │ │ └── arquivo.rb > │ └── manifests > │ └── init.pp > > My type is the folowing: > module Puppet newtype(:arquivo) do >this doesnt look right, try Puppet::Type.newtype(:foo) do end> @doc = "Manage a file (the simple version)." > ensurable > newparam(:name) do > desc "The full path to the file." > end > newproperty(:mode) do > desc "Manage the file''s mode." > defaultto "640" > end > end > > And my provider looks like: > Puppet::Type.type(:arquivo).provide(:arquivo) do > desc "Normal Unix-like POSIX support for file management." > > def destroy > File.unlink(@resource[:name]) > end > > def exists? > p "exists?" > File.exists?(@resource[:name]) > end > > def create > p "create" > File.open(@resource[:name], "w") { |f| f.puts "" } # Create an > empty file > # Make sure the mode is correct > should_mode = @resource.should(:mode) > unless self.mode == should_mode > self.mode = should_mode > end > end > > # Return the mode as an octal string, not as an integer. > def mode > p "getmode" > if File.exists?(@resource[:name]) > "%o" % (File.stat(@resource[:name]).mode & 007777) > else > :absent > end > end > > # Set the file mode, converting from a string to an integer. > def mode=(value) > File.chmod(Integer("0" + value), @resource[:name]) > end > end > > The manifest that I created is: > class arquivo { > > arquivo {"arquivo": > ensure => present , > name => "/tmp/teste", > mode => 777 > } > } > > class file { > > file { "/tmp/bla": > ensure => present > } > } > > node "cliente.britania" { > include arquivo, file > } > > When I run the puppet from my client (puppetd -td) I can see the new > file "bla" created by the class file, but I don''t find any file > created by the class "arquivo" (I guess my module is not running). > > myfileserver.conf: > [files] > path /etc/puppet/files > allow 10.0.0.0/8 > > [plugins] > allow 10.0.0.0/8 > > All other puppet configurations are default and I''m using Ubuntu 10.10. > > -- > 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+unsubscribe@googlegroups.com<puppet-users%2Bunsubscribe@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. > >-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
to update, after out chat in IRC. The problem was that pluginsync was not enabled on the client. This is pretty difficult to debug b/c of http://projects.puppetlabs.com/issues/4415. On Sun, Nov 7, 2010 at 9:55 AM, Otacilio Lacerda <otaciliolacerda@gmail.com>wrote:> I''m trying to create a new module. When I try to create a module it > looks like it is not finding the module. I created a new Type, > provider called "arquivo". The structure looks like: > > modules/ > ├── arquivo > │ ├── lib > │ │ └── puppet > │ │ ├── provider > │ │ │ └── arquivo > │ │ │ └── arquivo.rb > │ │ └── type > │ │ └── arquivo.rb > │ └── manifests > │ └── init.pp > > My type is the folowing: > module Puppet newtype(:arquivo) do > @doc = "Manage a file (the simple version)." > ensurable > newparam(:name) do > desc "The full path to the file." > end > newproperty(:mode) do > desc "Manage the file''s mode." > defaultto "640" > end > end > > And my provider looks like: > Puppet::Type.type(:arquivo).provide(:arquivo) do > desc "Normal Unix-like POSIX support for file management." > > def destroy > File.unlink(@resource[:name]) > end > > def exists? > p "exists?" > File.exists?(@resource[:name]) > end > > def create > p "create" > File.open(@resource[:name], "w") { |f| f.puts "" } # Create an > empty file > # Make sure the mode is correct > should_mode = @resource.should(:mode) > unless self.mode == should_mode > self.mode = should_mode > end > end > > # Return the mode as an octal string, not as an integer. > def mode > p "getmode" > if File.exists?(@resource[:name]) > "%o" % (File.stat(@resource[:name]).mode & 007777) > else > :absent > end > end > > # Set the file mode, converting from a string to an integer. > def mode=(value) > File.chmod(Integer("0" + value), @resource[:name]) > end > end > > The manifest that I created is: > class arquivo { > > arquivo {"arquivo": > ensure => present , > name => "/tmp/teste", > mode => 777 > } > } > > class file { > > file { "/tmp/bla": > ensure => present > } > } > > node "cliente.britania" { > include arquivo, file > } > > When I run the puppet from my client (puppetd -td) I can see the new > file "bla" created by the class file, but I don''t find any file > created by the class "arquivo" (I guess my module is not running). > > myfileserver.conf: > [files] > path /etc/puppet/files > allow 10.0.0.0/8 > > [plugins] > allow 10.0.0.0/8 > > All other puppet configurations are default and I''m using Ubuntu 10.10. > > -- > 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+unsubscribe@googlegroups.com<puppet-users%2Bunsubscribe@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. > >-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.