On Monday, December 29, 2014 7:58:28 AM UTC-6, [email protected] wrote:
>
> I've implemented a similar solution to generate a preseed file for postfix
> as describe in
> http://projects.puppetlabs.com/projects/1/wiki/debian_preseed_patterns.
>
> The basic difference is that I created a puppet template for the pressed
> file with some parameters. But it seems that the solution suggested in the
> wiki page above is working only on the first installation. If the package
> is already installed and something is changed, than the new preseed file is
> installed on the puppet agent, but after that nothing happens. I have to
> run manually "dpkg-reconfigure -f noninteractive postfix".
>
>
That is the nature of a preseed file: it provides *installation-time*
information for the package. More specifically, it configures *apt* with
respect to how to install the named package; it does not configure the
package itself.
That approach is fine if you are using Puppet strictly for provisioning (at
least with respect to the preseeded packages), and especially if you are
migrating from a provisioning approach that relies on preseed files. The
article you linked asks "Why bother clobbering a config file that is
automatically generated out of debconf anyway?" as if there were no good
answer. If you intend to have ongoing Puppet management of the
configuration of the installed services, however, then the preseed file
approach isn't a very good fit, as you discovered. In that case, you would
be better off with the standard model described at the top of the article,
under "Normally you would just do something like the following."
If you insist on continuing with the preseed file, then you need to add
something like this to your preseed_package type:
exec { "${name}_preseed_update":
command => "dpkg-reconfigure -f noninteractive ${name}",
path => "/sbin:/bin:/usr/sbin:/usr/bin",
refreshonly => true,
subscribe => File["/var/local/preseed/${name}.preseed"]
}
Note, too, that the above provides a complete solution only if
dpkg-reconfigure can be relied upon to restart the service when it
reconfigures it, but in that case you have the service's run status managed
in two different places. Otherwise, you need to add appropriate
relationships to the Service['postfix'] resource, which cannot be done
cleanly because the resources that need to be related are declared in
different scopes (the relationships can nevertheless be declared, though).
This all makes the preseed approach a bit messy for continuing management.
It's in any case not any easier than the normal approach, and it's probably
harder unless you start with preseed files already in hand.
John
--
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/daedd60d-ba9c-4911-b2dc-557996196851%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.