Как поменять обои всех клиентов, использующих марионетку?

Я настроил марионетку (Центральный сервер управления). Может кто-нибудь сказать мне, как изменить обои всех клиентов с этого сервера кукол?

4
задан 21 October 2011 в 10:33

2 ответа

Чтобы установить изображение обоев из командной строки (без марионетки), вы можете использовать что-то вроде этого:

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

, который, очевидно, должен быть запущен как пользователь, для которого вы меняете фон. [ 1111]

С точки зрения puppet, я думаю, что вы сможете загрузить файл на управляемые машины, используя ресурс file:

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

, а затем для запуска команды есть директива exec:

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",
    }
}

, которые вы можете выполнить для каждого из ваших пользователей:

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" }

Кроме того, вы можете ограничить выбор пользователем фонов только тем, который вы устанавливаете в Puppet. Для этого вам нужно изменить /usr/share/gnome-background-properties/ubuntu-wallpapers.xml (очевидно, используя Puppet). Сам файл будет выглядеть следующим образом:

<?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>

Правило для загрузки будет выглядеть следующим образом:

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

Также обратите внимание, что фон Ubuntu по умолчанию находится в файле /usr/share/backgrounds/warty-final-ubuntu.png - Я обнаружил, что замена этого файла дает более предсказуемые результаты, чем создание другого (т. Е. Gsettings не может изменить фон для новых пользователей, которые никогда не входили, например). Это также меняет фон экрана входа в систему и т. Д., Что, я полагаю, является хорошей вещью.

0
ответ дан 21 October 2011 в 10:33

На Oneiric:

Настройки обоев были перенесены в dconf; все настройки должны быть изменены с помощью вызовов по шине D-Bus.

Следовательно, для достижения этой цели с помощью Puppet вам потребуется модуль Puppet D-Bus и использовать его для отправки вызовов, как описано ниже.

Вы можете собирать информацию о том, какие вызовы D-Bus использовать, используя приложение dbus-monitor, чтобы посмотреть, что происходит при смене обоев.

См. Также Как изменить системное фоновое изображение по умолчанию для получения подробных сведений о настройке доступных обоев по умолчанию.


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"
         ]
      }
   ]
0
ответ дан 21 October 2011 в 10:33

Другие вопросы по тегам:

Похожие вопросы: