Você pode copiar o arquivo para outro nome e ter um exec para copiar somente se o arquivo printers.conf não contiver uma linha que você precise. Por exemplo.
file { "/etc/cups/printers.conf.puppet":
source => "puppet:///modules/desktop/cups/printers.conf",
mode => 0600,
owner => root,
group => lp;
}
# cups will put it's own timestamp in printers.conf, causing a loop if
# puppet always replaces if the timestamp is different. This only replaces
# the file is HP-Laserjet is not present
exec { "/bin/cp /etc/cups/printers.conf.puppet /etc/cups/printers.conf":
unless => '/bin/grep "HP-LaserJet-2300" /etc/cups/printers.conf 2>/dev/null',
subscribe => File["/etc/cups/printers.conf.puppet"],
refreshonly => "true",
require => Package["cups"],
notify => Service["cups"],
}