es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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)
Tags:  , , , ,

Answer

  1. Avatar for 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:

    ssh -T git@github.com
    

    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:

    Host fudge-api
    Hostname <dirección ip="">
    IdentityFile /root/.ssh/fudge_api_id_ed25519
    

    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:

    <dirección ip=""> fudge-api
    

    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>

Comments are closed.