Я создаю пользователя следующим образом
user { $username:
comment => "$name",
shell => "$shell",
managehome => false,
password => "$password",
groups => $groups
}
Теперь, как вы можете видеть, я делаю управляющий дом - ложь. Теперь по дорожке мне нужно отправить файл в домашний каталог пользователя.
$key = "${homedir}/${name}/file"
file { $key:
ensure => present,
owner => $username,
group => $username,
mode => 600,
content => "$keyvalue",
subscribe => User[$username],
}
Как я могу получить домашний каталог пользователя для этого?
Я попытался найти решение для точно такой же проблемы, и оказалось, что лучше придерживаться немного другого подхода.
Определите домашний каталог явно, например:
При
managehome
значении false домашний каталог даже не создается. Таким образом, вы должны конкретно определить это. Часто лучше сделать пользовательское определение для всего пользователя:Например
$keyvalue
, вы можете добавить больше параметров и создать ключевой файл, если этот параметр задан.Вы также можете определить глобальную переменную
$home = "/home"
(специфичную для ОС, если необходимо) и получить домашний каталог с помощью"${home}/${username}"
.Изменить: Использование хеша для определения пользовательских домашних каталогов
Более поздние версии Puppet (> = 2.6) поддерживают хеши. Можно было бы определить хэш, содержащий
username => /path/to/home
сопоставления для каждого пользователя:Для любого имени пользователя легко получить домашний каталог
$home['username']
.Домашний каталог хэш с резервным
В большинстве случаев было бы лучше иметь «запасной вариант по умолчанию», если пользователь не существует в хэше. Теоретически это возможно, хотя синтаксис становится немного загадочным и раздутым:
источник
Этот вопрос старый, но все еще актуален. На самом деле сейчас есть лучший способ. Добавьте пользовательский факт в [module] /lib/facter/home_dirs.rb, содержащий следующее:
Затем вы можете получить доступ к данным в манифесте следующим образом:
Имейте в виду, что это работает, только если пользователь уже существует до запуска марионетки. Если пользователь создается во время выполнения, домашний каталог должен быть уже известен или, по крайней мере, предсказуем. В конце концов, кукла предназначена для создания порядка.
Надеюсь, это кому-нибудь поможет.
источник