On Thursday, December 27, 2012 11:12:36 PM UTC, JGonza1 wrote:
I am trying to use information that facter gathers on the agent server in the manifest. I am trying to use "domain =>
dev.com" depending on what domain is I deploy the file. I ran the manifest and it did not give me an error but it did not fdeploy the file. My code is below.
In my files directory for this manifest I have these files
aliases
What you're trying to do is sensible.
The first thing I do with these sorts of problems is work backwards from the Agent - is the Agent trying to manage this resource? The last run should store a list of classes and resources in these files:
$ grep submit /var/lib/puppet/state/resources.txt
$ grep submitcf /var/lib/puppet/state/classes.txt
Or you can run the Agent with --evaltrace and it will print out each resource it tries to manage - check if
submit.cf scrolls past:
$ puppet agent --test --evaltrace
If
submit.cf is not there, then the Puppet Master does not think that your node should be managing those resources and the problem is in manifest compilation. Make sure this node's definition is declaring the correct submitcf classes.
If you want to, you can run a catalog compilation in debug mode. It won't help you with this specific problem but it's useful to know:
$ puppet master --compile <node name> --debug
This can be a bit complicated to read as you'll get a deluge of debug messages while the catalog is being compiled, then a big dump of JSON which is the catalog itself.
Lastly, I would rewrite your classes below like this:
class sendmailnew {
package { "sendmail":
ensure => installed,
notify => Service["sendmail"],
}
service { "sendmail":
ensure => running,
enable => true,
has_restart => true,
has_status => true,
require => [ Package["sendmail"], File["/etc/mail/
submit.cf"], ],
}
file { "/etc/mail/aliases":
ensure => file,
source => "puppet:///modules/sendmailnew/aliases",
owner => root,
group => root,
mode => 644;
notify => Exec["mailaliases"],
}
exec { "mailaliases":
command => "/usr/bin/newaliases",
refreshonly => true,
notify => Service["sendmail"],
}
ensure => file,
owner => root,
group => root,
mode => 644,
source => "puppet:///modules/sendmailnew/submit.cf.$domain";
require => Package["sendmail"],
notify => Service["sendmail"],
}
}
Have a look at the differences and if you have any questions, please ask.
HTH,
-Luke