Hubot 을 설치하기 위해 Chef 요리 책을 쓰고 있습니다. 레시피에서 나는 다음을 수행합니다.
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
그러나 요리 책을 설치하는 서버에서 chef-client를 실행하려고하면 hubot 사용자가 아닌 chef-client를 실행하는 사용자의 디렉토리에 대한 쓰기 권한이 거부됩니다. 어떤 이유로 npm
bash 자원에 지정된 사용자가 아닌 잘못된 사용자로 실행하려고합니다.
sudo su - hubot -c "npm install /usr/local/hubot/hubot"
수동으로 실행할 수 있으며 원하는 결과를 얻습니다 (hubot 사용자로 hubot 설치). 그러나 chef-client가 hubot 사용자로 명령을 실행하지 않는 것 같습니다. 아래에는 chef-client 실행이 나와 있습니다. 미리 감사드립니다.
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