I have set up puppet (Central Management Server). Can anyone tell me how to change wallpapers of all clients from this puppet server?
I have set up puppet (Central Management Server). Can anyone tell me how to change wallpapers of all clients from this puppet server?
To set the wallpaper image from command line (without puppet), you can use something like this:
which obviously needs to be run as the user you're changing the background for.
In terms of puppet, I believe you would be able to upload the file to the controlled machines using
file
resource:then, to run a command, there's
exec
directive:which you can execute for each of your users:
Also, you may want to restrict user's choice of backgrounds only to the one you're setting with Puppet. For that, you need to modify
/usr/share/gnome-background-properties/ubuntu-wallpapers.xml
(obviously, using Puppet). The file itself would look like:The rule to upload it would look like:
Also, note that the default Ubuntu background is in the file
/usr/share/backgrounds/warty-final-ubuntu.png
- I'm finding that replacing this file gives more predictable results then creating another one (i.e. gsettings is unable to change background for new users who never logged in, for example). This also changes the background of the login screen etc, which I suppose is a good thing.On Oneiric :
Wallpaper settings have been moved to dconf ; all settings must be changed with D-Bus calls.
Therefore to achieve this with puppet you'll need a puppet D-Bus module, and to use it to send calls as described below.
You can gather information on which D-Bus calls to use, using the
dbus-monitor
application to watch what happens when you change wallpaper.See also How to modify the system default background image for detail on how to configure the default available wallpaper.