我正在创建一个用户如下
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],}
解决方法
嗯,我认为你需要一个简单的模块来做这个和一个小hacky清单文件…
facter模块:这将为所有用户注册facter变量.比如“home_root”或“home_apache”.
require 'etc' Etc.passwd { |user| Facter.add("home_#{user.name}") do setcode do user.dir end end }
然后你可以在清单文件中使用它们,如下所示:
$username = "root" $home = "home_$username" $home_path = inline_template("<%= scope.lookupvar('::$home') %>") file { "$home_path/test.txt": content => "huhu",}
也许有更好的方法,但我不敢.