On Monday, December 29, 2014 7:58:28 AM UTC-6, na...@hu.inter.net 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 puppet-users+unsubscr...@googlegroups.com. 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.