火箭人。部署后如何在不同服务器上执行命令?

时间:2014-12-06 21:34:50

标签: php laravel

我有几个服务器 - 后端,前端和api。 要在服务器上部署代码,我使用Rocketeer。

我为一个连接使用多个服务器:

'connections' => array(
    'production' => array(
        'servers' => array(
            array(
                'host' => 'xxx.xxx.xxx.xxx', // backend
                'username' => 'admin',
                'password' => 'xxxxxx',
                'key' => '',
                'keyphrase' => '',
            ),
            array(
                'host' => 'xxx.xxx.xxx.xxx', // api
                'username' => 'admin',
                'password' => 'xxxxxx',
                'key' => '',
                'keyphrase' => '',
            ),
            array(
                'host' => 'xxx.xxx.xxx.xxx', // frontend
                'username' => 'admin',
                'password' => 'xxxxxx',
                'key' => '',
                'keyphrase' => '',
            ),          
        ),
    ),
).

为每个服务器执行其任务。

要确定当前连接,我在hooks.php中使用以下代码

$connection = $task->getConnection();
$server = $connection->connections->getServer();
$credentials = $connection->connections->getServerCredentials($connection->connections->getConnection(), $server);

switch($credentials['host']){
    case 'xxx.xxx.xxx.xxx':
        $task->runForCurrentRelease('...');
        break;
}

数据按顺序上传到服务器。

部署到上一台服务器后,我无法在以前的服务器上执行命令。

部署后如何在不同的服务器上执行命令? (例如:重启nginx,重启memcached等。)

1 个答案:

答案 0 :(得分:0)

我相信这是您正在寻找的:http://rocketeer.autopergamene.eu/#/docs/docs/II-Concepts/Events

您应该能够为每组命令创建自己的侦听器。