Для добавления к очень хорошему списку, отправленный Chris Thorpe, вот является еще некоторыми причинами, почему выполнение, которое является плохой идеей:
Действительно, "репликация наверху" аргумент является действительно сильной. Если Вы имеете небольшое количество серверов, локальных друг для друга, говорите под 10, это не столь плохо. После того как Вы добираетесь до больших количеств, особенно если они являются удаленными друг от друга, проблемы начинают увеличивать. Репликация в AD Сайте является one-many, и между сайтами обычно настраиваются с хостами плацдарма, направляющими обновления. Не только AD информация должна копироваться, также - вся информация о Групповой политике (это - то, что хранится в "SYSVOL"), должен копироваться в каждый DC. Это - сетка очень сложной репликации, когда Вы получаете многих DCS в среде, и это намного легче для вещей пойти не так, как надо.
С точки зрения безопасности Вы действительно не хотите потенциальных взломщиков, получающих локальный доступ к DC. Намного легче извлечь хэши пароля всего домена, когда Вы локальны для DC, и с Таблицами Радуги это в значительной степени игра закончена, если Ваши политики паролей не намного более строги, чем являются наиболее часто используемыми сегодня.
$ username = $ forename [0] .chr.downcase + name.downcase $ email $forename.downcase+'.'+$name.downcase+'@localnet.lan '
Почему вы думаете, что это сработает? Ни одна из этих функций не поддерживается языком Puppet.
Взгляните на http://docs.puppetlabs.com/references/stable/function.html , чтобы узнать, что вы можете делать со строками напрямую в марионетке (немного). Затем загляните на http://docs.puppetlabs.com/guides/templating.html , чтобы узнать, как использовать шаблоны ERB, которые решат вашу проблему.
Кроме того, это не ваша проблема, но это проблема : если вы хотите, чтобы ваши строки интерполировали переменные, вы должны использовать двойные кавычки, например:
user { $username:
comment => "$forename $name",
...