我正在写一本厨师食谱来安装
Hubot.在食谱中,我做了以下几点:
bash "install hubot" do user hubot_user group hubot_group cwd install_dir code <<-EOH wget https://github.com/downloads/github/hubot/hubot-#{node['hubot']['version']}.tar.gz && \ tar xzvf hubot-#{node['hubot']['version']}.tar.gz && \ cd hubot && \ npm install EOH end
但是,当我尝试在安装cookbook的服务器上运行chef-client时,我获得了权限,拒绝写入运行chef-client的用户的目录,而不是hubot用户.出于某种原因,npm试图在错误的用户下运行,而不是在bash资源中指定的用户.
我可以手动运行sudo su – hubot -c“npm install /usr/local / hubot / hubot”,这样就得到了我想要的结果(将hubot安装为hubot用户).但是,似乎chef-client没有作为hubot用户执行命令.下面你会发现厨师 – 客户执行.先感谢您.
Saving to: `hubot-2.1.0.tar.gz' 0K ...... 100% 563K=0.01s 2012-01-23 12:32:55 (563 KB/s) - `hubot-2.1.0.tar.gz' saved [7115/7115] npm ERR! Could not create /home/<user-chef-client-uses>/.npm/log/1.2.0/package.tgz npm ERR! Failed creating the tarball. npm ERR! Couldn't pack /tmp/npm-1327339976597/1327339976597-0.13104878342710435/contents/package to /home/<user-chef-client-uses>/.npm/log/1.2.0/package.tgz npm ERR! error installing hubot@2.1.0 Error: EACCES,permission denied '/home/<user-chef-client-uses>/.npm/log' ... npm not ok ---- End output of "bash" "/tmp/chef-script20120123-25024-u9nps2-0" ---- Ran "bash" "/tmp/chef-script20120123-25024-u9nps2-0" returned 1
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。