Hey guys, OK, thanks! So I solved the type-o with the one ':' in the file definition and separated the classes out into 4 different files:
showing init.pp class ssh { include ssh::install, ssh::config, ssh::service } showing config.pp class ssh::config { file { "/etc/ssh/sshd_config": ensure = > present, owner => 'root', group => 'root', mode => 0600, source => "puppet:///modules/ssh/sshd_config", require => Class["ssh::install"], notify => Class["ssh::service"], } showing install.pp class ssh::install { package { "openssh": ensure => present, } } And finally showing service.pp class ssh::service { service { "sshd": ensure => running, hasstatus => true, hasrestart => true, enable => true, require => Class["ssh::config"], } } } They manifests are all located in the following directory with this ownership and permissions: root@puppet:/etc/puppet/modules/ssh/manifests] #ls -l /etc/puppet/modules/ssh/manifests/ total 16 -rw-r--r-- 1 puppet puppet 395 Jan 16 10:00 config.pp -rw-r--r-- 1 puppet puppet 63 Jan 16 09:59 init.pp -rw-r--r-- 1 puppet puppet 104 Jan 16 10:00 install.pp -rw-r--r-- 1 puppet puppet 191 Jan 16 10:01 service.pp But now when I run the puppet command I get the following error saying that puppet can't find the 'ssh class': [root@beta:~] #puppet agent --test --server puppet.mydomain.com err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class ssh::install for beta.jokefire.com on node beta.mydomain.com warning: Not using cache on failed catalog err: Could not retrieve catalog; skipping run This is how my node definitions look: node 'base' { include bash, sudo, puppet, ca } node 'webserver' inherits 'base' { include web } node 'beta.mydomain.com' inherits 'webserver' { include mysql, cassandra, mongo, memcached, proftpd, ssh } Any ideas why this error is now occurring? Thanks Tim On Thu, Jan 16, 2014 at 12:55 AM, Andrea Cappelli <a.cappe...@gmail.com>wrote: > Il 16/01/2014 06:25, Tim Dunphy ha scritto: > >> Hi All, >> >> [....] >> >> >> err: Failed to apply catalog: Could not find dependency >> Class[Ssh:install] for File[/etc/ssh/sshd_config] at >> /etc/puppet/modules/ssh/manifests/init.pp:16 >> [...] >> >> >> class ssh::config { >> file { "/etc/ssh/sshd_config": >> ensure => present, >> owner => 'root', >> group => 'root', >> mode => 0600, >> source => "puppet:///modules/ssh/sshd_config", >> require => Class["ssh:install"], >> notify => Class["ssh::service"], >> } >> } >> >> > Hi, > I suppose you have to use require => Class["ssh::install"] instead of > require => Class["ssh:install"] (double ::) > > HTH > > -- > Andrea Cappelli > > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to puppet-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/puppet-users/52D77454.1020906%40gmail.com. > > For more options, visit https://groups.google.com/groups/opt_out. > -- GPG me!! gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAOZy0emD5cmm8FzBYz1QmERX6%3DxdadsGRRfzzjCgsm2etJ4-eg%40mail.gmail.com. For more options, visit https://groups.google.com/groups/opt_out.