我有一个 cap 脚本,它在运行任何远程代码之前执行一些冗长的编译步骤。我希望能够在这一切发生时走开,但是一旦编译完成,它就会要求我输入远程服务器密码。有没有办法可以强制脚本立即询问密码,以便我可以让其余部分无人看管?
我知道我可以设置无密码 ssh 来完全避免密码提示,但我正在寻找一种方法,允许尚未设置无密码 ssh 的用户进行无人值守部署。
我觉得我在某处看到了一个简单的解决方案,但我无法找到正确的搜索词。
我有一个 cap 脚本,它在运行任何远程代码之前执行一些冗长的编译步骤。我希望能够在这一切发生时走开,但是一旦编译完成,它就会要求我输入远程服务器密码。有没有办法可以强制脚本立即询问密码,以便我可以让其余部分无人看管?
我知道我可以设置无密码 ssh 来完全避免密码提示,但我正在寻找一种方法,允许尚未设置无密码 ssh 的用户进行无人值守部署。
我觉得我在某处看到了一个简单的解决方案,但我无法找到正确的搜索词。
如果您通过sudo
(也就是说,您有set :use_sudo, true
)运行大多数命令,您可能可以通过挂钩来执行此操作before "deploy", "ask_for_password"
,并创建一个任务“ask_for_password”并立即使用它来执行任何带有 的命令sudo
,例如sudo date
. Sudo 只会在第一次提示,然后大概有足够长的超时来完成部署。
如果这不起作用...
...我们谈论的是 capistrano——capistrano 一点也不简单。这是一个非常强大的工具,我不知道有人觉得它“简单”。
与其设置每个人都可以部署,不如设置一个主机,您可以让人们作为“部署者”之类的用户通过 ssh 进入,然后让它执行部署。
但是部署是一项非常重要的任务——不是每个人都应该能够做到,尤其是在生产环境中。我认为您最好安装有权部署在他们被允许部署到的服务器上的用户的无密码公钥(例如,更多的是测试而不是登台或生产)。