Como mudar o papel de parede de todos os clientes usando o fantoche?

4

Eu configurei o fantoche (Central Management Server). Alguém pode me dizer como mudar papéis de parede de todos os clientes deste servidor de fantoches?

    
por karthick87 07.10.2011 / 20:42

2 respostas

4

Para definir a imagem do papel de parede a partir da linha de comando (sem boneco), você pode usar algo assim:

gsettings set org.gnome.desktop.background picture-uri "file:///path/to/file.jpg"

que obviamente precisa ser executado como o usuário para o qual você está alterando o plano de fundo.

Em termos de fantoche, acredito que você possa enviar o arquivo para as máquinas controladas usando file resource:

file { "/usr/share/backgrounds/warty-final-ubuntu.png":
   source => "puppet://server/modules/module_name/background.jpg" 
}

então, para executar um comando, há exec directive:

define set_bg($name) {
    exec {"set bg for $name":
        command => "/usr/bin/gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/warty-final-ubuntu.png",
        user => "$name",
    }
}

que você pode executar para cada um dos seus usuários:

user { "joe":
  ensure      =>  "present",
  uid         =>  "1005",
  comment     =>  "Joe",
  home        =>  "/home/joe",
  shell       =>  "/bin/bash",
  managehome  =>  "true"
} 

user { "ted":
  ensure      =>  "present", 
  uid         =>  "1006", 
  comment     =>  "Ted",
  home        =>  "/home/ted",
  shell       =>  "/bin/bash",
  managehome  =>  "true"
} 

set_bg { "joe": name=>"joe" }
set_bg { "ted": name=>"ted" }

Além disso, você pode querer restringir a escolha de planos de fundo do usuário apenas àquele que está configurando com o Puppet. Para isso, você precisa modificar /usr/share/gnome-background-properties/ubuntu-wallpapers.xml (obviamente, usando o Puppet). O arquivo em si ficaria assim:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
   <wallpaper>
    <name>Common Background</name>
    <filename>/usr/share/backgrounds/warty-final-ubuntu.png</filename>
    <options>zoom</options>
    <pcolor>#000000</pcolor>
    <scolor>#000000</scolor>
    <shade_type>solid</shade_type>
   </wallpaper>
</wallpapers>

A regra para fazer o upload seria:

file { "/usr/share/gnome-background-properties/ubuntu-wallpapers.xml":
   source => "puppet://server/modules/module_name/backgrounds.xml",
}

Além disso, observe que o plano de fundo padrão do Ubuntu está no arquivo /usr/share/backgrounds/warty-final-ubuntu.png - Estou descobrindo que a substituição desse arquivo fornece resultados mais previsíveis e cria outro (isto é, o gsettings não pode alterar o segundo plano para novos usuários que nunca efetuaram login , por exemplo). Isso também altera o plano de fundo da tela de login, etc., o que suponho ser uma coisa boa.

    
por Sergey 21.10.2011 / 05:04
2

Em Oneiric:

As configurações do papel de parede foram movidas para o dconf; todas as configurações devem ser alteradas com as chamadas D-Bus.

Portanto, para conseguir isso com o fantoche, você precisará de um módulo D-Bus puppet e usá-lo para enviar chamadas conforme descrito abaixo.

Você pode reunir informações sobre quais chamadas do D-Bus usar, usando o aplicativo dbus-monitor para observar o que acontece quando você muda o papel de parede.

Veja também Como modificar o plano de fundo padrão do sistema imagem para detalhes sobre como configurar o papel de parede padrão disponível.


method call sender=:1.2153 -> dest=ca.desrt.dconf serial=44 path=/ca/desrt/dconf/Writer/user; interface=ca.desrt.dconf.Writer; member=WriteMany
   string "/org/gnome/desktop/background/"
   array [
      struct {
         string "color-shading-type"
         array [
            variant                string "solid"
         ]
      }
      struct {
         string "picture-options"
         array [
            variant                string "zoom"
         ]
      }
      struct {
         string "picture-uri"
         array [
            variant                string "file:///usr/share/themes/Adwaita/backgrounds/stripes.jpg"
         ]
      }
      struct {
         string "primary-color"
         array [
            variant                string "#3465a4"
         ]
      }
   ]
method call sender=:1.2153 -> dest=ca.desrt.dconf serial=45 path=/ca/desrt/dconf/Writer/user; interface=ca.desrt.dconf.Writer; member=WriteMany
   string "/org/gnome/desktop/background/"
   array [
      struct {
         string "picture-options"
         array [
            variant                string "zoom"
         ]
      }
   ]
    
por Adrian 14.10.2011 / 21:18

Tags