我有几个服务器 - 后端,前端和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等。)
答案 0 :(得分:0)
我相信这是您正在寻找的:http://rocketeer.autopergamene.eu/#/docs/docs/II-Concepts/Events
您应该能够为每组命令创建自己的侦听器。