Greetings!
Thank you so much John. I just learned something new about Puppet. Utilizing
inline_template is a heck of a lot easier then how I first attempted that
variable substitution. I might have to go back and fix some of my older code
later....
Here are a few other notes in response to your email:
> Have you considered setting up a caching proxy between you and them?
We have discussed doing a caching proxy, but haven't ever had the
time/inclination to implement one yet.
----
> What per-package request(s) is yum actually making?
I explored the yum thing a bit more. Running puppet-3.6.2-1.el6.noarch on both
server and client using CentOS6 as my test systems. I started a puppet run in
one terminal and ran this code in a second:
$ while [ "$(pgrep puppet)" != "" ]; do pgrep yum; done | uniq
If I just do this:
package { 'telnet' : ensure=>absent,}
Nothing triggers.
If I do it this way:
$removethesepackages = [
'telnet-server',
'telnet',
]
package {$removethesepackages : ensure=>absent,}
Then I get a yum PID per package. For every PID I get a line in the puppet log
like this:
Notice: /Stage[main]/audit::Software_disabled/Package[telnet]/ensure: created
(there is that weird error message again where an absent is "created").
I don't know why. Both work as expected, but the second triggers a yum call the
first doesn't.
So I thought, 'Maybe it is hitting local cache and not actually going out to
the repo'. I dug around in the logs on our local repo and found this:
[IP REMOVED] - - [23/Jul/2014:14:07:58 -0500] "GET
/puppetlabs/6/products/x86_64/repodata/repomd.xml HTTP/1.1" 200 2529 "-"
"urlgrabber/3.9.1 yum/3.2.29"
It isn't one per package, but it is one per puppet run. Something about that
method calls yum differently I guess. Not sure why.
---
The double notice I was referring to is this:
Notice: Package telnet is not installed
Notice:
/Stage[main]/audit::Software_disabled/audit::Forbidden_package[telnet]/Notify[Package
telnet is not installed]/message: defined 'message' as 'Package telnet is not
installed'
I am told three times in two lines (more with wrap around on a console) that
telnet isn't installed. I find it annoying and haven't found a solution to
removing it yet and leaving just the first Notice. If you know of one I would
be /very/ grateful.
----
I implemented your code and it is working brilliantly. I made two changes.
1) I placed the define in init.pp so I can reference it anywhere in the audit
class easily.
2) I changed:
'<%= scope.lookupvar('::pkg_' + @title.gsub('-', '_')) %>')
to:
"<%= scope.lookupvar('::pkg_' + @title.gsub('-', '_')) %>")
Using the single quotes gave me the error:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Syntax error at '::pkg_'; expected ')' at
/etc/puppet/modules/audit/manifests/software_disabled.pp:8 on node
centos6.testing.puppet
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
But now it is working really well in my dev environment! I push to production
tomorrow...We will see how pleased I am with my code changes at the end of the
day after this fix + 4 other "minor" changes roll out. :-D
Thank you to everyone who has chimed in. These responses are exactly what I was
looking for. I have learned more about puppet and have a few new tricks to use.
I really do appreciate it.
Thanks!
~Stack~
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/1d09b25c-55ab-486b-a6c4-e31803b9b813%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.