[Nostromo] Fix Symfony tasks. Tweak SSH configuration.

This commit is contained in:
Andrés Montañez 2016-12-31 17:51:47 -03:00
parent 0bb6944c42
commit 83e66b340a
7 changed files with 32 additions and 14 deletions

View file

@ -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' }

View file

@ -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;
}
}

View file

@ -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);

View file

@ -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
);

View file

@ -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
);

View file

@ -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
);

View file

@ -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
);