Sooo i have this hash in app1's puppet manifest
$applicaton = 'app1' daemontools::build { $application: path => "/opt/supervise/${application}" envvars => { 'ENVIRONMENT' => $location, 'SERVICE_USER' => $application_user, 'SERVICE_PORT' => $gunicorn_port, 'SERVICE_IP' => $gunicorn_ip, 'ADDITIONAL_PARAMS' => "--workers $processorcount", 'DJANGO_SETTINGS_MODULE' => "${application}.settings", } } and this hash in my app2's puppet manifest
$applicaton = 'app2' daemontools::build { $application: path => "/opt/supervise/${application}" envvars => { 'ENVIRONMENT' => $location, 'SERVICE_USER' => $application_user, 'SERVICE_PORT' => $gunicorn_port, 'SERVICE_IP' => $gunicorn_ip, 'ADDITIONAL_PARAMS' => "--workers $processorcount", 'DJANGO_SETTINGS_MODULE' => "${application}.settings", } } which are both passed to daemontools::build ( along with a path )
define daemontools::build ( $envvars = {}, $path ){ $env_names = keys($envvars) daemontools::envfile { $env_names: path => $path, value => $envvars } } define daemontools::envfile($path, $value) { file { "/${path}/envdir/${name}" : mode => 0644, content => "${value[$name]}"; } } which results in
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: Daemontools::Envfile[SERVICE_IP] is already declared in file daemontools/manifests/build.pp:53; cannot redeclare at daemontools/manifests/build.pp:53
How can i make it so that i wont get duplicate resource declarations?