2012-03-03 5 views
0

Я пытаюсь сделать следующее с помощью Puppet на Ubuntu 10.04: Кукольный значение ID пользователя и пакет

  1. скопировать файл, который у меня есть в определенный каталог, который будет принадлежать конкретному пользователю/группе что еще не существует, так как пакет не был установлен
  2. Установите пакет, в котором он не удалит каталог и файл, который я создал

для выполнения пункта # 1, я в основном говорю кукольный создать пользователя и группа сначала перед копированием файл. Но проблема в том, что если я не дам конкретный uid для Puppet, он будет случайным образом выбирать число, как номер для пользователя, а не номер для системного пакета.

Итак, как я могу сказать Куколку, чтобы выбрать uid больше 1000?

Если это невозможно, как я могу сообщить Puppet, чтобы не запускать пакет при его установке. Поэтому я бы просто позволил Puppet установить пакет, но не запускать службу, а затем скопировать мой файл, после чего я запустим эту службу.

ответ

1

Тип пользователя имеет параметр system =>, который по умолчанию имеет значение false, но может быть установлен в true. Это создаст пользователя с UID ниже 500. Кажется, что вы хотите.

В конечном итоге то, что вы хотите сделать, по моему мнению, - это управлять каталогом config и конфигурацией через куклу.

Это дает возможность делать такие вещи, как, например:

package { foo: ensure => present } 

file { 
    fooconfdir: 
    path => '/path/to/fooconfdir', 
    ensure => directory, 
    user => whatev, 
    group => alsowhatev, 
    require => Package[foo], 
    mode => morewhatev; 
    fooconf: 
    path => '/path/to/fooconfdir/fooconf', 
    ensure => present, 
    user => whatev, 
    content => template('whatev'); 
} 

service { foo: ensure => running, enable => true, subscribe => File[fooconf] } 

Что это будет сделать, это установить пакет затем управлять конфигурациями, а затем перезапустить службу, которая будет использовать ваш новый конфиг явно при перезагрузке.