Hi puppet users, I have a question about crossdependencies. Let's say I want to manage an application my_application and the backupclient on a node. I always need a backclient but its configuration depends on a) wether my_application is installed or not b) the configuration of my_application
This is one pattern I can think of:
node 'mynode' {
class { 'my_application':
paramA => valueA,
paramBalsoInterestingForBackupclass => valueB,
paramCalsoInterestingForBackupclass => valueC,
}
class { 'backup::client':
backup_definitions => [ 'my_application' ],
}
}
Is it ALWAYS safe to access $::my_application::paramBalsoInterestingForBackup
inside the backup::client class or can I run into ordering issues?
Or how whould you model this kind of relationship? A second pattern I
can think of is having a third class backup::client::my_application that
takes the same params as the my_application class and gets included
inside the my_application class. So I would end up with
node 'mynode' {
class { 'my_application':
paramA => valueA,
paramBalsoInterestingForBackupclass => valueB,
paramCalsoInterestingForBackupcalss => valueC,
backup => true,
}
class { 'backup::client': } # just the basic config
}
and inside class my_application:
if $backup {
class { 'backup::client::my_application':
paramB => $paramBalsoInterestingForBackupclass,
paramC => $paramCalsoInterestingForBackupclass,
require => Class['backup::client'],
}
}
Does this sound like a better approach? Nevertheless is the first one
save?
-Stefan
pgpCkK5clqYuV.pgp
Description: PGP signature
