我正在运行 chef-solo,chef-solo -c solo.rb -j node.json -ldebug
但失败了,因为 nginx cookbook/recipe 引用了我没有的用户“www-data”。我可以更改 node.json 文件中的值吗?我的 node.json 如下所示:
{
"nginx": {
"user": "my_username"
},
"run_list": [
"recipe[nginx]",
"recipe[mysql::server]"
]
}
我的问题是Opscode nginx 配方似乎忽略了这个设置。
答案1
是的:-)
www-data
只是 Debian(以及类似 Debian 的系统)中用于运行 Web 服务器的默认用户。将其更改为其他用户root
即可。对于大多数没有 的发行版,www-data
没有用户httpd
,否则您可以nobody
。
如果您使用的是 Windows,请使用适当的用户。
答案2
使用 chef-{client,solo} 选项传递的“json_attribs”文件-j
旨在代表“默认”节点对象,类似于您knife node create FOO
在 Chef Server 上执行创建新的空白节点时发生的情况。要覆盖说明书中的属性,您应该使用角色应用它们。
Chef Solo 可以使用角色。您必须role_path
在配置文件中指定。
http://wiki.opscode.com/display/chef/Chef+Solo#ChefSolo-Roles