Dmytro,
I'm a git noob :) I've had a look at the module now. I wouldn't say
it's designed that well and I think a few people on this list would
agree.
To fix your problem I think you'll have to "include rsync" first,
which will then import "classes/*.pp", which will then allow Puppet to
find the rsyncd class. This is a bad design as rsyncd should really be
it's own module or a subclass rather than relying on including a class
that actually does nothing but import other .pp files.
When thinking about the rsync software itself, the module could be
designed better. You can't have just an rsync client with this module
(ie: just Package[rsync]), you only get an rsync server. That means if
you wanted to Puppetify an rsync client you'd need another module/
class, which would then leave to multiple declaration problems if a
node is a client AND a server as both would try declare
Package[rsync]. A better idea would be something like this:
class rsync
installs rsync software
class rsync::rsyncd
include rsync (for the software)
turns on rsyncd, contains a define to setup rsyncd exports
And the actual module structure would look like this, which requires
zero "import" statements:
modules/rsync/init.pp <- contains "class rsync"
modules/rsync/rsyncd.pp <- contains "class rsync::rsyncd"
Lastly, I personally don't like the name of the define
"rsyncd::export" as the double colon kind of denotes they are parent
and child classes, but that's just me.
Anyway, if you really want to use this module you could try "include
rsync" before "include rsyncd". You will have to remove your own
declaration of Package[rsync] as this is already done in the rsyncd
module and will cause a multiple declaration error.
My recommendation is to write a better module yourself, you'll learn
more that way :)
Hope this helps,
-Luke