Chef:在C中创建目录的权限不足:

Bri*_*ich 5 ruby windows chef-infra

尝试使用Chef在C:\ Program Files中创建目录时遇到错误.我作为管理员从PowerShell环境运行厨师,因此对于我可以执行的操作不应有任何限制.

食谱/ default.rb

directory node['app']['unzip_path'] do
  action :create
end
Run Code Online (Sandbox Code Playgroud)

属性/ default.rb

default['app']['unzip_path'] = 'C:/Program files/App'

我收到这个错误:

[2013-06-25T01:51:13+00:00] FATAL: Chef::Exceptions::InsufficientPermissions: directory[C:/Program files/App] (app::agent line 15) had an error: Chef::Exceptions::InsufficientPermissions: Cannot create directory[C:/Program files/App] at C:/Program files/App due to insufficient permissions
Run Code Online (Sandbox Code Playgroud)

附加问题:chef-solo是作为运行powershell命令的用户运行还是作为特殊的"chef"用户运行

Bri*_*ich 1

根据http://tickets.opscode.com/browse/CHEF-3787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel,看起来这是一个错误。我的决定是走红宝石路线

require 'fileutils'
FileUtils.mkdir_p node['app']['unzip_path']
Run Code Online (Sandbox Code Playgroud)

这里的问题是我失去了厨师目录资源提供的幂等性属性,但是如果您需要将内容放入程序文件中,这似乎是目前唯一的途径