gpt4 book ai didi

ruby - 如何使用 Capistrano 3 作为另一个用户进行部署

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:06 24 4
gpt4 key购买 nike

我在 OS X 10.9.1 上使用 Ruby 2.1 和 Capistrano 3.1,部署到 CentOS 6.5。

在我的目标部署服务器上,我无法以我的部署用户 admin@myserver ssh 登录,但我可以以 paul@myserver 身份 ssh 登录然后 sudo su - 管理员

我做了一个测试任务:

task :sayhello do
on roles(:app) do
as "admin" do
puts capture "whoami"
end
end
end

并且按预期工作:

$ cap beta deploy:sayhello 
DEBUG [acaa0e6a] Running /usr/bin/env if ! sudo su admin -c whoami > /dev/null; then echo "You cannot switch to user 'admin' using sudo, please check the sudoers file" 1>&2; false; fi on awse-tweb01.foo.com
DEBUG [acaa0e6a] Command: if ! sudo su admin -c whoami > /dev/null; then echo "You cannot switch to user 'admin' using sudo, please check the sudoers file" 1>&2; false; fi
DEBUG [acaa0e6a] Finished in 6.982 seconds with exit status 0 (successful).
DEBUG [153b980d] Running /usr/bin/env whoami on awse-tweb01.foo.com
DEBUG [153b980d] Command: sudo su admin -c "/usr/bin/env whoami"
DEBUG [153b980d] admin
DEBUG [153b980d] Finished in 0.535 seconds with exit status 0 (successful).
admin

如何让 Capistrano 以管理员身份运行部署任务? 即在运行命令之前以 sudo su admin -csudo su shell 为前缀。

最佳答案

您需要将 key 添加到管理员用户。您可以将您的公钥添加到您要部署的用户的授权主机。

as() 函数使您可以使用大多数命令的部署登录,但您需要以其他用户身份运行命令。就像在 postgres 用户或其他用户下运行命令一样。当然,这是权限,因此里程可能会有所不同,并且在其他环境中可能会有所不同。

关于ruby - 如何使用 Capistrano 3 作为另一个用户进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21560028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com