J'ai quelques méthodes qui font cela:
def method_a
Net::SSH.start(...) do |ssh|
end
end
def method_b
Net::SSH.start(...) do |ssh|
end
end
def method_c
Net::SSH.start(...) do |ssh|
end
end
3 Réponses :
Oui, vous pouvez définitivement le faire sécher.
Vous pouvez ajouter une méthode qui accepte un nom d'hôte pour la connexion NET :: SSH comme ci-dessous: P>
def ssh_exec(hostname) Net::SSH.start( hostname, 'user', :timeout => 5, :paranoid => false ) do |ssh| .... end end
merci mais je réachère ma question à être plus claire. Votre solution ne fonctionne pas depuis chaque méthode SSH Block exécute différentes choses. Aussi, il ne s'agit pas de faire du code à sec, c'est à propos de la réutilisation de la session SSH pour toutes les 3 sessions
Le moyen d'aller en net :: ssh consiste à mettre à une variable, puis sur chaque méthode p> et Bien sûr, je placerai tout ce qui précède dans une classe, afin que je puisse initialiser et démarrer une session SSH et exécuter des commandes sans rétablir SSH. P> P>
En dehors d'une classe, vous pouvez essayer:
Si c'est dans une classe, vous pouvez définir `attr_reader: ssh` puis l'initialiser ainsi:
P> def method_a
ssh.exec(...)
end
@ydanjiu, votre deuxième méthode, dans une classe est ce que j'ai déjà répondu. Mais pour la première méthode. L'appel appelle toutes les 3 méthodes qui ne sont pas ce que je veux atteindre.