我正在尝试使用 Puppet 创建一个用户,但是我所做的一切都失败了。
我正在尝试创建一个名为“capistrano”的用户,该用户将被放置在“www-data”组中。我已完成以下配置。
class capistranoDeps::user {
user { "capistrano":
ensure => present,
comment => "Capistrano user",
gid => 33,
shell => "/bin/bash",
require => Group["capistrano"],
}
group {"capistrano":
ensure => present,
}
}
class capistranoDeps::config {
require capistranoDeps::user
# Set permissions on webserver directories
file {"/var/www/":
ensure => directory,
owner => "capistrano",
group => "www-data",
mode => "775",
}
...
}
class capistranoDeps {
require tools
include capistranoDeps::user,capistranoDeps::config
}
当我尝试在我的主机上执行此配置时,出现以下错误:
root@app1:/etc/openvpn# puppet agent --server=puppet.domain --no-daemonize --verbose
notice: Starting Puppet client version 2.6.2
info: Caching catalog for app1.domain
err: Could not run Puppet configuration client: Could not find user capistrano
用户尚未在主机上创建,因为这是 Puppet 的工作。我到处找到的示例似乎与此相同,但由于这不起作用,我肯定遗漏了一些东西。
答案1
“require” 并不会按照你想象的那样做——它实际上会创建依赖关系。
您想在类 capistranoDeps::config 中使用“include”
include capistranoDeps::user
有关更多信息,另请参阅此问题: