2010-07-06 11 views
9

Devo scrivere un test per lo script di distribuzione che carica i file tramite SSH, ma mi piacerebbe farlo in base alla configurazione dei server esterni. Ecco come la vedo io:Emulazione del server SSH a scopo di test

  1. Creare 2 daemon SSH senza autenticazione su porte diverse dell'interfaccia di loopback.
  2. eseguire lo script distribuzione su queste due porte

l'unica domanda è come gestire questi demoni SSH fittizi.

Io uso Python e Fabric.

risposta

6

Se si vuole il pieno controllo sulle azioni del server (ad esempio, al fine di simulare diverse condizioni di problema e, quindi, fare davvero un approfondito test) Raccomando twisted: come illustrato in questo articolo, rende davvero facile configurare il proprio server SSH personalizzato.

Se si vuole usare un server ssh esistente, sceglierne uno dalla lista here (o utilizzare quello che viene fornito con il sistema, se del caso, o forse sshwindows se siete su Windows) ed eseguirlo con subprocess da Python come parte dell'avvio dei test.

+0

Grazie per l'idea utile, ma ho appena scimmia patch API Fabric per eseguire tutti i comandi sul server locale. Segnerò il tuo commento in quanto ha comunque la soluzione migliore. –

1

Reimplementare un daemon SSH non è banale.

Se il tuo unico problema è non li vuoi a seconda delle configurazioni esistenti, puoi avviare il nuovo sshd con -f per specificare una configurazione specifica e -p per eseguire su una determinata porta.

È possibile utilizzare os.system per effettuare chiamate alla shell:

os.system('sshd -f myconfig -p 22022') 
+0

Questa è una grande idea e ho quasi funzionato, ma mi sono bloccato con ssh-agent che non può funzionare due volte con il file authorized_keys specifico. Comunque, grazie per la tua risposta! –

Problemi correlati