gpt4 book ai didi

ruby - 如何在 Capistrano v3 的服务器上运行 shell 命令?

转载 作者:数据小太阳 更新时间:2023-10-29 06:19:31 25 4
gpt4 key购买 nike

我是 Capistrano 的新手,我曾尝试使用 Capistrano 的 DSL 在服务器上运行 shell 命令(“运行”、“执行”等),但它似乎已被弃用。在搜索和搜索功能等价物之后,我仍然迷路了。

当前代码:

desc 'Do something'
task :do_something
execute 'echo sometext'
end

输出:

    cap aborted!
undefined method `execute' for main:Object
/Users/Justin/Dropbox/xxxx/xxxx/xxxx/Capfile:45:in `block (2 levels) in <top (required)>'
/Users/Justin/.rvm/gems/ruby-2.0.0-p247/bundler/gems/capistrano-2dc1627838f9/lib/capistrano/application.rb:12:in `run'
/Users/Justin/.rvm/gems/ruby-2.0.0-p247/bundler/gems/capistrano-2dc1627838f9/bin/cap:3:in `<top (required)>'
/Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/cap:23:in `load'
/Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/cap:23:in `<main>'
/Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval'
/Users/Justin/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => deploy:do_something

最佳答案

在 Capistrano v3 中,您必须通过使用主机名列表调用 on 来指定要运行代码的位置,例如

task :execute_on_server do
on "root@example.com" do
execute "some_command"
end
end

如果你设置了角色,你可以使用 roles 方法来方便:

role :mailserver, "root@mail.example.com"

task :check_mail do
on roles(:mailserver) do
execute "some_command"
end
end

这里有一些 v3 文档:http://www.capistranorb.com/

关于ruby - 如何在 Capistrano v3 的服务器上运行 shell 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838930/

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