В Chef-solo Я не могу понять, как выполнить команду от пользователя bash.Шеф-повар Run Virtualenv Bash
В Шеф-Соло на Vagrant, I положения и установить virtualenv, это работает, если я войти в систему и ввести $ virtualenv
или $ virtualenvwrapper
.
я не могу запустить его от Шеф-Соло получить эти работы:
Я попытался это, но ничего (без ошибок я могу видеть) не делать:
execute 'mkvirtualenv' do
user node.default["username"]
group node.default["username"]
command "source /usr/local/bin/virtualenvwrapper.sh | bash && mkvirtualenv --no-site-packages --distribute /home/#{node.default["username"]}/projects/#{node.default["params"]["vhost"]} | bash"
end
I попытался это, но у него есть ошибки:
bash 'mkvirtualenv' do
cwd "/home/#{node.default['username']}/projects/"
user node.default["username"]
environment ({
'HOME' => '/home/#{node.default["username"]}'
})
code "source /usr/local/bin/virtualenvwrapper.sh && mkvirtualenv --no-site-packages --distribute #{node.default["params"]["vhost"]}"
end
Update
Я также пробовал это:
bash 'mkvirtualenv' do
cwd "/home/#{node.default["username"]}/projects/"
user node.default["username"]
environment ({
'HOME' => ::Dir.home(node.default['username']),
'USER' => node.default['username']
})
code <<-EOH
source /usr/local/bin/virtualenvwrapper.sh \
mkvirtualenv --no-site-packages --distribute #{node.default["params"]["vhost"]}
EOH
end
Кто-нибудь знает, что я могу сделать?
Просто интересно, почему у вас есть источник /usr/local/bin/virtualenvwrapper.sh | bash' в ресурсе выполнения? Когда вы запускаете 'bash', он разворачивает новую оболочку, и, вероятно, вы ничего не видите. Попробуйте выполнить ту же команду, что и в блоке 'bash'. –
Поскольку мне нужен bash для выполнения, sh не будет работать. Я добавил еще одну попытку с bash выше. :) – JREAM
Что происходит с обновленным ресурсом bash? –