From 83e66b340ade01823f126284a7c833b31015e377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Monta=C3=B1ez?= Date: Sat, 31 Dec 2016 17:51:47 -0300 Subject: [PATCH] [Nostromo] Fix Symfony tasks. Tweak SSH configuration. --- .mage.yml | 11 +++++++---- src/Mage/Runtime/Runtime.php | 19 +++++++++++++++++-- .../Task/BuiltIn/Deploy/TarGz/CopyTask.php | 8 ++++---- .../Task/BuiltIn/Symfony/AsseticDumpTask.php | 2 +- .../BuiltIn/Symfony/AssetsInstallTask.php | 2 +- .../Task/BuiltIn/Symfony/CacheClearTask.php | 2 +- .../Task/BuiltIn/Symfony/CacheWarmupTask.php | 2 +- 7 files changed, 32 insertions(+), 14 deletions(-) diff --git a/.mage.yml b/.mage.yml index b607c2a..ca42ec8 100644 --- a/.mage.yml +++ b/.mage.yml @@ -1,14 +1,15 @@ magephp: # composer: # path: composer - symfony: +# symfony: # console: bin/console # log_dir: app/logs environments: production: user: root -# ssh: -p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -# scp: -P 22 -p -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no +# ssh: +# port: 22 +# flags: -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no branch: test host_path: /var/www/test releases: 4 @@ -18,7 +19,9 @@ magephp: - app/log - web/app_dev.php hosts: - - webserver + - webserver1 + - webserver2 + - webserver3 pre-deploy: - git/update # - composer/install #: { flags: '--optimize' } diff --git a/src/Mage/Runtime/Runtime.php b/src/Mage/Runtime/Runtime.php index 24b3bbf..1a21c78 100644 --- a/src/Mage/Runtime/Runtime.php +++ b/src/Mage/Runtime/Runtime.php @@ -378,7 +378,7 @@ class Runtime { $user = $this->getEnvironmentConfig('user'); $host = $this->getWorkingHost(); - $sshFlags = $this->getEnvironmentConfig('ssh', '-p 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'); + $sshConfig = $this->getSSHConfig(); $cmdDelegate = $cmd; if ($jail) { @@ -391,8 +391,23 @@ class Runtime } $cmdRemote = str_replace(['"', '&', ';'], ['\"', '\&', '\;'], $cmdDelegate); - $cmdLocal = sprintf('ssh %s %s@%s sh -c \"%s\"', $sshFlags, $user, $host, $cmdRemote); + $cmdLocal = sprintf('ssh -p %d %s %s@%s sh -c \"%s\"', $sshConfig['port'], $sshConfig['flags'], $user, $host, $cmdRemote); return $this->runLocalCommand($cmdLocal, $timeout); } + + public function getSSHConfig() + { + $sshConfig = $this->getEnvironmentConfig('ssh', ['port' => '22', 'flags' => '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no']); + + if (!array_key_exists('port', $sshConfig)) { + $sshConfig['port'] = '22'; + } + + if (!array_key_exists('flags', $sshConfig)) { + $sshConfig['flags'] = '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'; + } + + return $sshConfig; + } } diff --git a/src/Mage/Task/BuiltIn/Deploy/TarGz/CopyTask.php b/src/Mage/Task/BuiltIn/Deploy/TarGz/CopyTask.php index f660689..97826b6 100644 --- a/src/Mage/Task/BuiltIn/Deploy/TarGz/CopyTask.php +++ b/src/Mage/Task/BuiltIn/Deploy/TarGz/CopyTask.php @@ -39,7 +39,7 @@ class CopyTask extends AbstractTask $user = $this->runtime->getEnvironmentConfig('user'); $host = $this->runtime->getWorkingHost(); - $scpFlags = $this->runtime->getEnvironmentConfig('scp', '-P 22 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'); + $sshConfig = $sshConfig = $this->runtime->getSSHConfig(); $hostPath = rtrim($this->runtime->getEnvironmentConfig('host_path'), '/'); $currentReleaseId = $this->runtime->getReleaseId(); @@ -48,13 +48,13 @@ class CopyTask extends AbstractTask $tarGzLocal = $this->runtime->getVar('targz_local'); $tarGzRemote = basename($tarGzLocal); - $cmdCopy = sprintf('scp %s %s %s@%s:%s/%s', $scpFlags, $tarGzLocal, $user, $host, $targetDir, $tarGzRemote); + $cmdCopy = sprintf('scp -P %d %s %s %s@%s:%s/%s', $sshConfig['port'], $sshConfig['flags'], $tarGzLocal, $user, $host, $targetDir, $tarGzRemote); /** @var Process $process */ $process = $this->runtime->runLocalCommand($cmdCopy, 300); if ($process->isSuccessful()) { - $cmdUntar = sprintf('cd %s && tar xfz %s', $targetDir, $tarGzRemote); - $process = $this->runtime->runRemoteCommand($cmdUntar, false, 600); + $cmdUnTar = sprintf('cd %s && tar xfz %s', $targetDir, $tarGzRemote); + $process = $this->runtime->runRemoteCommand($cmdUnTar, false, 600); if ($process->isSuccessful()) { $cmdDelete = sprintf('rm %s/%s', $targetDir, $tarGzRemote); $process = $this->runtime->runRemoteCommand($cmdDelete, false); diff --git a/src/Mage/Task/BuiltIn/Symfony/AsseticDumpTask.php b/src/Mage/Task/BuiltIn/Symfony/AsseticDumpTask.php index 9d5de74..0ec55a9 100644 --- a/src/Mage/Task/BuiltIn/Symfony/AsseticDumpTask.php +++ b/src/Mage/Task/BuiltIn/Symfony/AsseticDumpTask.php @@ -45,7 +45,7 @@ class AsseticDumpTask extends AbstractTask { $userOptions = $this->runtime->getConfigOptions('symfony', []); $options = array_merge( - ['path' => 'bin/console', 'env' => 'dev', 'flags' => ''], + ['console' => 'bin/console', 'env' => 'dev', 'flags' => ''], (is_array($userOptions) ? $userOptions : []), $this->options ); diff --git a/src/Mage/Task/BuiltIn/Symfony/AssetsInstallTask.php b/src/Mage/Task/BuiltIn/Symfony/AssetsInstallTask.php index 42d5293..70de880 100644 --- a/src/Mage/Task/BuiltIn/Symfony/AssetsInstallTask.php +++ b/src/Mage/Task/BuiltIn/Symfony/AssetsInstallTask.php @@ -45,7 +45,7 @@ class AssetsInstallTask extends AbstractTask { $userOptions = $this->runtime->getConfigOptions('symfony', []); $options = array_merge( - ['path' => 'bin/console', 'env' => 'dev', 'target' => 'web', 'flags' => '--symlink --relative'], + ['console' => 'bin/console', 'env' => 'dev', 'target' => 'web', 'flags' => '--symlink --relative'], (is_array($userOptions) ? $userOptions : []), $this->options ); diff --git a/src/Mage/Task/BuiltIn/Symfony/CacheClearTask.php b/src/Mage/Task/BuiltIn/Symfony/CacheClearTask.php index 3bda724..ac21018 100644 --- a/src/Mage/Task/BuiltIn/Symfony/CacheClearTask.php +++ b/src/Mage/Task/BuiltIn/Symfony/CacheClearTask.php @@ -45,7 +45,7 @@ class CacheClearTask extends AbstractTask { $userOptions = $this->runtime->getConfigOptions('symfony', []); $options = array_merge( - ['path' => 'bin/console', 'env' => 'dev', 'flags' => ''], + ['console' => 'bin/console', 'env' => 'dev', 'flags' => ''], (is_array($userOptions) ? $userOptions : []), $this->options ); diff --git a/src/Mage/Task/BuiltIn/Symfony/CacheWarmupTask.php b/src/Mage/Task/BuiltIn/Symfony/CacheWarmupTask.php index fbf051f..4fe2ed4 100644 --- a/src/Mage/Task/BuiltIn/Symfony/CacheWarmupTask.php +++ b/src/Mage/Task/BuiltIn/Symfony/CacheWarmupTask.php @@ -45,7 +45,7 @@ class CacheWarmupTask extends AbstractTask { $userOptions = $this->runtime->getConfigOptions('symfony', []); $options = array_merge( - ['path' => 'bin/console', 'env' => 'dev', 'flags' => ''], + ['console' => 'bin/console', 'env' => 'dev', 'flags' => ''], (is_array($userOptions) ? $userOptions : []), $this->options );