Я хочу развернуть простой текстовый файл (шаблон сообщения git commit) в домашнем каталоге каждого пользователя с помощью Puppet.
Я наткнулся эта почта что кажется очень близким, но я не совсем понимаю, как мне создать список пользователей для каждого узла?
В посте они жестко кодируют таких пользователей:
applink::desktoplinks { [ "user1", "user2", "user3" ]: }
Я не могу жестко закодировать список, потому что это машины для разработчиков, и у них может быть множество разных пользователей, специфичных для каждого узла.
Смотря на эта почта, Я думаю, мне нужно использовать виртуальные ресурсы, но, будучи новичком, я просто читал документы и предоставленные образцы, и я не мог понять этого.
Может ли кто-нибудь указать мне где-нибудь быстрый образец или рецепт, иллюстрирующий, как это сделать?
Для создания списка пользователей необходимо создать новый факт. Любая поступающая информация из хост, который будет настроен, должен быть фактом.
Например, следующий факт возвращает все /etc/passwd
:
# etcpasswd.rb
Facter.add("etcpasswd") do
setcode do
File.read('/etc/passwd')
end
end
Вы ставите этот факт в lib/facter
подкаталог модуля или в plugins/facter
в базовом каталоге Puppet. Я думаю тебе нужно pluginsync = true
в puppet.conf
тоже, но это может быть только для более старых версий Puppet.
Вы можете увидеть пример этого в работе на моем модуль марионеточных пользователей.
Я новичок в марионетке, поэтому не уверен, возможно ли это, но подозреваю, что нет.
Рассматривали ли вы просто передачу копии вашего шаблона и скрипта в одно место на каждом поле. Затем настройте exec
ресурс, чтобы при обновлении шаблона git запускался скрипт. Сценарий зациклится /home
копирование файлов в соответствующие места.