On Tue, Feb 22, 2011 at 10:42:34AM -0500, Ashley Penney wrote:
> Hi,
> 
> I'm having a problem with a module that works on my production servers, but
> is giving me grief when ran from scratch.  When I run the client I get:
> 
> [root@hlsdevcms1 puppet]# puppetd -tv
> info: Retrieving plugin
> info: Loading facts in apache-ports
> info: Loading facts in location
> info: Loading facts in dell
> info: Loading facts in convera
> info: Loading facts in apache-ports
> info: Loading facts in location
> info: Loading facts in dell
> info: Loading facts in convera
> info: Caching catalog for hlsdevcms1.law.harvard.edu
> err: Could not run Puppet configuration client: Could not find user rhythmyx
> 
> I have tried everything I can think of to add more and more require =>
> statements into the two .pp's that comprise the module but it refuses to
> find the user.  I have run puppetmasterd in debug mode and the client in
> debug mode to no avail, neither gives me any more information on why this
> would fail.  I've checked in the local yaml on the client and the rhythmyx
> stuff appears in there, including the comment statement in the user{}, so
> it's definitely in the catalog.
> 
> The init.pp (apologises for what a mess this is, but I've been messing with
> it trying to get it working):
> 
*snip*

You shouldnt need any of these requires. If you've say something like
user {'foo': gid => 'bar'} the user automatically requires the group. If
you specify file {'foo': owner => 'foo'} the file automatically requires
the user and so on. One thing that is a little suspicious is that you
define a file default File { owner => ..., require => ...}. Maybe heres
the error (also I did a test and setting the default owner to a not
existant user works on my machine)

So what I would do is
- does it work with a dummy class?
- Do you need the user in some of your custom facts? Because the facts
  will run before the actual puppet run.

If that doesnt help try to reduce your example to the bare minimum where
the error occurs. If you have anything special in your puppet.conf post
it. And the actual debug output could help to.

-Stefan

(I took the freedom to reformat)
> ##
> ## Install rhythmyx.
> ##
> 
> class rhythmyx {
>   include rhythmyx::install
>   if defined(Class["splunk4::client"]) {
>     concat::fragment{"splunk4-rx":
>       target  => "/opt/splunk/etc/system/local/inputs.conf",
>       content => "[monitor:///opt/rhythmyx/Rhythmyx/.../*.log]\ndisabled = 
> false\nsourcetype = rhythmyx\nindex = rhythmyx\n_blacklist = 
> rx_lib.*\\.log\n",
>     }
>   }
> 
>   ##
>   ## Users/Groups
>   ##
>   user { "rhythmyx":
>     ensure     => "present",
>     uid        => 5000,
>     gid        => 5000,
>     comment    => "rhythmyx user",
>     home       => "/opt/rhythmyx",
>     shell      => '/bin/bash',
>     managehome => true,
>     require    => Group['rhythmyx'],
>   }
>   group { "rhythmyx":
>     ensure => "present",
>     gid    => "5000",
>   }
> 
>   service { "RhythmyxD":
>     ensure     => "running",
>     hasrestart => "false",
>     hasstatus  => "false",
>     pattern    => "RhythmyxServer.exe",
>     start      => "/opt/rhythmyx/Rhythmyx/bin/RhythmyxDaemon start 
> /opt/rhythmyx/Rhythmyx/",
>     stop       => "/opt/rhythmyx/Rhythmyx/bin/RhythmyxDaemon stop 
> /opt/rhythmyx/Rhythmyx && sleep 45",
>     require => Exec["rx-permissions-rhythmyx"],
>   }
>
>   ##
>   ## Crons
>   ##
> 
>   file 
> {"/opt/rhythmyx/Rhythmyx/AppServer/bin/hls_ScheduledPublicationFullEdition.sh":
>     ensure  => "present",
>     source  => 
> "puppet:///modules/rhythmyx/hls_ScheduledPublicationFullEdition.sh",
>     owner   => "rhythmyx",
>     group   => "rhythmyx",
>     mode    => "755",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   file 
> {"/opt/rhythmyx/Rhythmyx/AppServer/bin/hls_ScheduledPublicationIncrementalEdition.sh":
>     ensure  => "present",
>     source  => 
> "puppet:///modules/rhythmyx/hls_ScheduledPublicationIncrementalEdition.sh",
>     owner   => "rhythmyx",
>     group   => "rhythmyx",
>     mode    => "755",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   ##
>   ## Backups
>   ##
> 
>   tidy {"/opt/rhythmyx/Rhythmyx/AppServer/server/rx/deploy/publogs.war":
>     age     => '90d',
>     matches => '*.log',
>     recurse => 'true',
>   }
> 
>   tidy { "/tmp/rxtemp.rhythmyx":
>     age     => '2d',
>     matches => '*.tmp',
>     recurse => 'true',
>   }
> 
>   cron { "Rhythmyx restart":
>     command => "/etc/init.d/RhythmyxD restart",
>     ensure  => "present",
>     user    => "root",
>     minute  => "00",
>     hour    => "03",
>     weekday => "3",
>   }
> 
> }
> 
> The install.pp:
> 
> ##
> ## Install rhythmyx
> ##
> 
> class rhythmyx::install {
> 
>   $url = extlookup("url")
>   $rxsqlserver = extlookup("rxsqlserver")
> 
>   #package { 'compat-libgcc-296': ensure => present }
>   #package { 'compat-libstdc++-296': ensure => present }
>   #package { 'compat-glibc': ensure => present }
> 
>   File { 
>     owner   => rhythmyx,
>     group   => rhythmyx,
>     mode    => 755,
>     require => User["rhythmyx"],
>   }
> 
>   file { "/opt/rhythmyx/":
>     ensure => "directory",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   exec { "rx-permissions-rhythmyx":
>     command => "chown -R rhythmyx:rhythmyx /opt/rhythmyx",
>     cwd => "/opt/",
>     require => [ File['/opt/rhythmyx'], User['rhythmyx'] ],
>   }
> 
>   file { "/etc/init.d/RhythmyxD":
>     ensure => "present",
>     source => "puppet:///modules/rhythmyx/RhythmyxD",
>     owner => "root",
>     group => "root",
>   }
> 
>   ##
>   ## ALL OF THESE FILES NEED UPDATING WHEN INSTALLING.
>   ##
> 
>   file { "/opt/rhythmyx/Rhythmyx/rx_user.id":
>     ensure => "present",
>     source => "puppet:///modules/rhythmyx/rx_user.id",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   file { "/opt/rhythmyx/Rhythmyx/RhythmyxServer.ja":
>     ensure => "present",
>     source => "puppet:///modules/rhythmyx/RhythmyxServer.ja",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   file 
> {"/opt/rhythmyx/Rhythmyx/AppServer/server/rx/deploy/jbossweb-tomcat55.sar/server.xml":
>     ensure => "present",
>     content => template("rhythmyx/server.xml.erb"),
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   file 
> {"/opt/rhythmyx/Rhythmyx/AppServer/server/rx/deploy/rxapp.ear/rxapp.war/WEB-INF/lib/velocity-tools-1.4.jar":
>     ensure  => "present",
>     source  => "puppet:///modules/rhythmyx/velocity-tools-1.4.jar",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   file { "/opt/rhythmyx/Rhythmyx/rxconfig/Server/config.xml":
>     ensure  => "present",
>     source  => "puppet:///modules/rhythmyx/config.xml",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   file { "/opt/rhythmyx/Rhythmyx/AppServer/server/rx/deploy/rx-ds.xml":
>     ensure  => "present",
>     content => template("rhythmyx/rx-ds.xml.erb"),
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   file 
> {"/opt/rhythmyx/Rhythmyx/AppServer/server/rx/deploy/rxapp.ear/rxapp.war/WEB-INF/config/spring/server-beans.xml":
>     ensure  => "present",
>     source  => "puppet:///modules/rhythmyx/server-beans.xml",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
>   ## Temporary fix until 6.6
> 
>   file { "/opt/rhythmyx/Rhythmyx/rxW2Ktidy.properties":
>     ensure  => "present",
>     source  => "puppet:///modules/rhythmyx/rxW2Ktidy.properties",
>     require => [ User["rhythmyx"], Group["rhythmyx"] ],
>   }
> 
> }
> 
> Can anyone see anything I've overlooked, or suggest any reason that it would
> demand the user exist BEFORE attempting to run the catalog?
> 
> -- 
> 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.
> 

Attachment: pgpri0Z64ZmNx.pgp
Description: PGP signature

Reply via email to