Estoy usando fabric
para hacer una implementación remota de mi aplicación en un servidor de espacio en bastidor. He probado mis scripts en máquinas virtuales usando el mismo sistema operativo (Ubuntu Server 10.04) en la computadora de mi casa y todos parecen funcionar.No se puede colocar la tela. ¿Se necesita alguna configuración de servidor?
Extrañamente, todos los comandos de fabric put
fallan en el servidor real. Todos los otros comandos (run
, cd
, sudo
, etc.) parecen funcionar bien.
Esto sólo ocurre cuando la orientación de este servidor específico, este es el comando ejecuto:
fab test --host remote-server
remote-server
es un alias en mi .ssh/config
. Mi fabfile:
@task
def test():
sudo("echo testing")
put("/tmp/file.txt", "/tmp/")
tmp/test_file.txt
es simplemente un archivo de texto que estoy usando para mis pruebas
Ésta es la salida
[remote-server] Executing task 'test'
[remote-server] sudo: echo testing
[remote-server] out: testing
Traceback (most recent call last):
File "/home/user/env/lib/python2.6/site-packages/fabric/main.py", line 712, in main
*args, **kwargs
File "/home/user/env/lib/python2.6/site-packages/fabric/tasks.py", line 298, in execute
multiprocessing
File "/home/user/env/lib/python2.6/site-packages/fabric/tasks.py", line 197, in _execute
return task.run(*args, **kwargs)
File "/home/user/env/lib/python2.6/site-packages/fabric/tasks.py", line 112, in run
return self.wrapped(*args, **kwargs)
File "/home/user/project/fabfile/__init__.py", line 33, in test
put("/tmp/file.txt", "/tmp/")
File "/home/user/env/lib/python2.6/site-packages/fabric/network.py", line 457, in host_prompting_wrapper
return func(*args, **kwargs)
File "/home/user/env/lib/python2.6/site-packages/fabric/operations.py", line 338, in put
ftp = SFTP(env.host_string)
File "/home/user/env/lib/python2.6/site-packages/fabric/sftp.py", line 20, in __init__
self.ftp = connections[host_string].open_sftp()
File "/home/user/env/lib/python2.6/site-packages/ssh/client.py", line 399, in open_sftp
return self._transport.open_sftp_client()
File "/home/user/env/lib/python2.6/site-packages/ssh/transport.py", line 844, in open_sftp_client
return SFTPClient.from_transport(self)
File "/home/user/env/lib/python2.6/site-packages/ssh/sftp_client.py", line 105, in from_transport
chan.invoke_subsystem('sftp')
File "/home/user/env/lib/python2.6/site-packages/ssh/channel.py", line 240, in invoke_subsystem
self._wait_for_event()
File "/home/user/env/lib/python2.6/site-packages/ssh/channel.py", line 1114, in _wait_for_event
raise e
ssh.SSHException: Channel closed.
Disconnecting from [email protected] done.
¿Hay algo que necesito configurar en el servidor remoto para ser capaz de enviar archivos usando put
?
La tela utiliza SSH. Para 'put', podría usar' scp' o 'sftp'.Intenta usar 'scp' para subir un archivo manualmente primero para asegurarte de que tu entorno funcione bien con eso. – Drake
'scp' funciona,' sftp' no. Buscaré la forma de habilitar 'sftp' en el servidor. ¡Gracias! Este es el resultado que obtengo al intentar enviar sftp al servidor: 'solicitud de subsistema falló en el canal 0 No se pudo leer el paquete: restablecimiento de la conexión por pares' –
@Drake: ¿hay alguna manera de hacer que scp utilice el tejido en vez de sftp? – lpapp