Hello everybody.
I have a question about removing exported resources. How is this done?
Does it happen automagically?
If I do:
@@file{"/tmp/bla":
content => "blahs content",
ensure => present,
}
and thus export "/tmp/bla" to another host does it vanish by itself as
soon as I remove the definition, or would I need to state something
like:
@@file{"/tmp/bla":
content => "blahs content",
ensure => absent,
}
I am asking, because I have reconfigred some of the exported resources
that I have been using: "ensure => absent".
What happens is the following:
When puppetd runs on the collection host, the file is first deleted
and then created again. Huh? how can this be explained? Is this the
expected behaviour or have I found a bug? (server and client are
version 0.24.1 on Debian Etch and Mac OS X Tiger (with client 0.23.0))
Thanks,
udo.
--
:: udo waechter - root@zoide.net :: N 52º16''30.5" E
8º3''10.1"
:: genuine input for your ears: http://www.auriculabovinari.de
:: your eyes: http://ezag.zoide.net
:: your brain: http://www.zoide.net
udo waechter schrieb:> Hello everybody. > I have a question about removing exported resources. How is this done? > Does it happen automagically? > > If I do: > > @@file{"/tmp/bla": > content => "blahs content", > ensure => present, > } > > and thus export "/tmp/bla" to another host does it vanish by itself as > soon as I remove the definition, or would I need to state something > like: > > @@file{"/tmp/bla": > content => "blahs content", > ensure => absent, > } > > I am asking, because I have reconfigred some of the exported resources > that I have been using: "ensure => absent". > > What happens is the following: > When puppetd runs on the collection host, the file is first deleted > and then created again. Huh? how can this be explained? Is this the > expected behaviour or have I found a bug? (server and client are > version 0.24.1 on Debian Etch and Mac OS X Tiger (with client 0.23.0))The resources are exported at the time of compiling the configuration for the exporting node. A example: node a { @@file{ $file1: ensure => present; $file2: ensure => absent; } } node b { File<<||>> } Initial state: puppetmasterd running; no nodes ever configured; thus there are no resources stored in the database Execute on b: puppetd --test => nothing happens Execute on a: puppetd --test => file1 and file2 will be stored in the database Execute on b: puppetd --test => file1 will be created; file2 will be forced absent Remove file1 definition from node a manifest Execute on b: puppetd --test => file1 will be created; file2 will be forced absent This is because a''s configuration was not yet compiled again Execute on a: puppetd --test => file2 will be stored in the database Execute on b: puppetd --test => file1 will be ignored(!); file2 will be forced absent That should cover the major cases. Other should follow the same pattern. Regards, DavidS