如何在不更改部署主机 [Deployer] 的情况下在另一台主机上执行任务?

How to execute a task on another host without changing the deploy host [Deployer]?

我想编写一个连接到第二台主机的脚本以在那里执行命令。

with dep deploy stage 它也应该在 host: live 上执行任务

  1. 它连接到主机:live

    生成数据库转储

    并下载到部署计算机

  2. 它连接到主机:stage

    上传 db-dump

    并将其整合到那里

mysql-dump end mysl-import 的基本部分我知道,但是如何在另一台主机上执行任务?

谢谢指点!

在每个任务中,您可以 运行 "on" 函数。为此,您可以提供主机(在您的示例中,在 "live" 任务期间,您将提供 "stage"):

        on(host('stage'), function () {
            // do something
        });

如果您需要提供一些变量(例如动态创建的文件名),您可以像 use 一样将它们交给新函数。因此,如果您的任务将转储保存到文件名 $mysqlDumpFilename,例如:

        on(host('stage'), function () use ($mysqlDumpFilename) {
            // do something
        });

文档:https://deployer.org/docs/api#on