我正在创建一个用户如下
user { $username:
comment => "$name",
shell => "$shell",
managehome => false,
password => "$password",
groups => $groups
}
Run Code Online (Sandbox Code Playgroud)
现在你可以看到我在做一个 managehome 是假的 现在稍后我需要将文件推送到用户的主目录。
$key = "${homedir}/${name}/file"
file { $key:
ensure => present,
owner => $username,
group => $username,
mode => 600,
content => "$keyvalue",
subscribe => User[$username],
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能为此获取用户的主目录?
小智 12
嗯,我认为你需要一个因子模块来做到这一点,还有一个小小的 hacky 清单文件......
因子模块:这将为所有用户注册因子变量。像“home_root”或“home_apache”。
require 'etc'
Etc.passwd { |user|
Facter.add("home_#{user.name}") do
setcode do
user.dir
end
end
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样在你的清单文件中使用它们:
$username = "root"
$home = "home_$username"
$home_path = inline_template("<%= scope.lookupvar('::$home') %>")
file { "$home_path/test.txt":
content => "huhu",
}
Run Code Online (Sandbox Code Playgroud)
也许有更好的方法,但恐怕没有。
| 归档时间: |
|
| 查看次数: |
10427 次 |
| 最近记录: |