I am running 2.6 and can do this if needed.  What would the parent class be
in this example, the 'rhythmyx' class that the user{} entry is in?  This is
just included from foreman so I'm not sure there really is a "parent" as
such.  I have a user class for actual people that I could use if I had to.

Still, this seems crazy.  If there is a reference to a user in resources it
should check the rest of the yaml to see if that user is being created and
create it without erroring.  I might file this via the enterprise support
because I think this is a bug, but I'm interested in other opinions before I
do so.

Thanks,

On Tue, Feb 22, 2011 at 3:10 PM, Denmat <tu2bg...@gmail.com> wrote:

> Hi
> The way I've got around this is to realize the user in the parent class or
> to create a 'user' class and put in a
> { class name: stage => pre}
> to guarantee it is created first.
>
> That's using stages in 2.6 though. Not sure what you're running.
>
> Den
>
>
> On 23/02/2011, at 2:42, Ashley Penney <apen...@gmail.com> 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 <http://hlsdevcms1.law.harvard.edu>
> 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):
>
> ##
> ## 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.
>
>  --
> 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.
>

-- 
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