Je dois écrire un test pour le script de déploiement qui télécharge des fichiers via SSH, mais j'aimerais ne pas en dépendre de la configuration des serveurs externes. Voici comment je le vois: p>
La seule question est la suivante: comment exécuter ces démons-adémons ssh factice. P>
J'utilise Python et Tissu. P>
3 Réponses :
Réimplémenter un démon SSH n'est pas trivial.
Si votre seul problème est que vous ne voulez pas qu'ils dépendent des configurations existantes, vous pouvez démarrer un nouveau sshd em> avec -f pour spécifier un spécifique. Configuration et -P à exécuter sur un port donné. p> Vous pouvez utiliser os.System em> pour passer des appels à la coquille: p>
C'est une bonne idée et je l'ai presque travaillé, mais je suis resté coincé avec SSH-Agent qui ne peut pas fonctionner deux fois avec un fichier agréé_keys spécifique. Quoi qu'il en soit, merci pour votre réponse!
Si vous voulez un contrôle total sur les actions du serveur (par exemple, afin de simuler diverses conditions de problème et de faire des tests vraiment en profondeur), je vous recommande tordu : Comme cet article le montre, il est vraiment facile de configurer votre propre serveur SSH personnalisé. P>
Si vous préférez utiliser un serveur SSH existant, choisissez-en un de la liste ici ( ou utilisez celui qui est livré avec votre système, le cas échéant; ou peut-être sshwindows si vous êtes sous Windows) et exécutez-le avec Subprocess de Python dans le cadre de la démarrage de votre Tests. p>
Merci d'une idée utile, mais je ne fais qu'est une API de tissu patché de singe pour exécuter toutes les commandes sur le serveur local. Je vais marquer votre commentaire car il a la meilleure solution de toute façon.
Une autre option consiste à faire tourner un conteneur dockerisé avec le service SSHD fonctionnant. Vous pouvez utiliser une image Docker comme celles-ci:
J'ai utilisé ceci pour tester un script de déploiement (fait sur le dessus du tissu). p>
Voici comment vous l'utilisez. p>
Tirez l'image. p> Définissez les touches autorisées pour le serveur. p> exécutez le FAKESERVER. P> â ssh tester@localhost -p 2222
â ssh tester@localhost -p 2222 "echo 'Hello World'"