Despliegue de PHP v7 RC3 falla con ssh-keyscan y arroja un error de Nombre o servicio desconocido.
Estoy migrando mi proyecto de Deployer v6 a Deployer v7. Mi servidor tiene varios proyectos que utilizan claves de implementación sin contraseña. Al intentar implementar mi proyecto, estoy obteniendo el siguiente error a pesar de que mi archivo de configuración SSH en el servidor está correcto y originalmente se podía implementar en Deployer 6.
No creo que este sea un problema específico de Deployer, sino más bien algún problema de configuración SSH, ¿qué me falta?
Mi archivo config
es:
Host fudge-api
Hostname github.com
IdentityFile /root/.ssh/fudge_api_id_ed25519
Mi archivo deploy.php
es:
<?php
namespace Deployer;
require 'recipe/laravel.php';
require 'contrib/npm.php';
// Repositorio del proyecto
set('repository', 'git@github.com:company/fudge-api.git');
// [Opcional] Establece el usuario para el servidor web.
set('http_user', 'root');
// Archivos/directorios compartidos entre implementaciones
add('shared_files', ['.env']);
add('shared_dirs', ['storage', 'vendor', 'node_modules']);
// Establece el número de implementaciones a mantener
set('keep_releases', 3);
// Directorios que se pueden escribir por el servidor web
set('allow_anonymous_stats', false);
// Fudge API (Producción)
host('mi servidor IPv6')
->set('labels', ['stage' => 'production'])
->set('repository', 'git@fudge-api:company/fudge-api')
->set('branch', 'main')
->set('remote_user', 'root')
->set('deploy_path', '/var/www/fudge-api');
// Instalar con Composer
task('deploy:fudge_api_composer_install', function () {
run('cd {{release_path}} && composer install --optimize-autoloader --no-dev');
});
// Ejecutar tarea personalizada
after('deploy:vendors', 'deploy:fudge_api_composer_install');
// [Opcional] Desbloquear automáticamente si falla la implementación.
after('deploy:failed', 'deploy:unlock');
Y finalmente, el error exacto:
[IPV6] run ssh-keygen -F fudge-api:22 || ssh-keyscan -p 22 -H fudge-api >> ~/.ssh/known_hosts
[IPV6] err getaddrinfo fudge-api: Name or service not known
[IPV6] err getaddrinfo fudge-api: Name or service not known
[IPV6] err getaddrinfo fudge-api: Name or service not known
[IPV6] exit code 1 (General error)
davy.ai
Parece que el error está relacionado con el nombre de host
fudge-api
que no se resuelve en el servidor. Esto podría deberse a diferentes razones, como un problema de DNS o la configuración de SSH que no reconoce el host.Para investigar más a fondo, puedes intentar ejecutar el siguiente comando en el servidor:
Esto probará la conexión SSH a GitHub y te ayudará a determinar si la configuración de SSH en el servidor está correctamente establecida.
Si ese comando funciona, es posible que desees intentar modificar el archivo
config
para usar la dirección IP del host en lugar del nombre de host:Reemplaza
<dirección ip="">
con la dirección IP real del host.Alternativamente, puedes intentar agregar la siguiente línea a tu archivo
/etc/hosts
en el servidor:Nuevamente, reemplaza
<dirección ip="">
con la dirección IP real del host.Una vez que hayas realizado estos cambios, intenta ejecutar la implementación nuevamente y verifica si el error persiste.</dirección></dirección></dirección></dirección>