問題タブ [net-ssh]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Rubyでnet-ssh sudo suを実行する方法
sudo su - #{su_user}
Rubyの後に複数の net-ssh コマンドのチェーンを送信する方法を理解しようとしています。
私の現在のコードは以下にありsudo su
、send_data "#{password}\n"
.
一方、システム上では、 を手動で実行sudo su - admin2
する場合、パスワードを入力する必要はありません。
どんな助けでも大歓迎です!
shell - Net ::SSHRubyライブラリを使用してsudosuを必要とするリモートコマンド実行-別のユーザー
私の環境は、ノードサーバー(Rundeckサーバー)とノードターゲット(リモートSolarisホスト)の間のユーザー「マスター」に対してSSHパスワードなしの認証で構成されています。
/app/acme/stopApp.sh
Targetで、ユーザーと一緒にスクリプトを実行したいと思いますappmanager
。
通常、スクリプトを手動で実行する必要がある場合は、次を使用します。
または単に:
これはパスワードなしで機能し、最終的に(appmanagerとして)実行されます:
しかし、Net::SSHを使用してこれらの手順を再現する方法を理解することはできません。実行sudo su - appmanager
してから/app/acme/stopApp.sh
、サブシェルで実行していますよね?
ターゲットサーバー上にいるようなものを実行しようとすると、次のことに気付きました。
以下のメッセージが表示されます。
ruby-on-rails - ruby net/ssh で rake コマンドをリモートで実行できない
こんにちは、ruby net/ssh gem (2.0.24) を使用してリモート サーバーに接続し、rake タスクを実行しようとしています。以下に概説するスクリプトを使用して他の単純なタスクを実行できますが、rake は失敗します。
これは私のコードです
次のエラーメッセージが表示されます
リモートサーバーに手動でSSH 接続すると、rake taks を非常に簡単に実行できますが、上で概説したように net/ssh では機能しません。
どういうわけか、適切なシェルまたはパス変数への適切なアクセスに接続していないように感じますが、よくわかりませんし、修正方法もわかりません。何かご意見は?
ティア
ruby - session.exec 使用時の Ruby Net::SFTP エラー
Ruby で予期しない動作が発生していますNet::SFTP
(ruby 1.9.3p194)。
バリアント #1は失敗します。SFTP ブロックを開始しsession.exec!
、シェル コマンドの実行に使用します。
バリアント #2は成功します。SSH ブロックを開始しsftp.upload!
、ファイルのコピーに使用します。
アイデアや説明をいただければ幸いです。
バリアント #1 のスタック トレースは次のとおりです。
ruby-on-rails - Net/SSH.start が失敗しても例外が発生しない
Net::SSHを使用して別のサーバーに接続しています。正常に動作しますが、接続できない状況に対処できるようにしたいです。メソッドのドキュメントには、例外については何も言及されておらず、私が見る限り、例外は発生しません。次の例では、存在せず、キーがないホストとユーザーを渡しても、例外は発生しません。
失敗したかどうかを確認できる唯一の方法は、@session を確認することです。これは nil になりますが、失敗した理由については何もわかりません。
[更新] irb で以下を実行すると、SocketError が発生します。
アプリで例外が発生しないのはなぜですか?
ruby-on-rails - 実行のためのNet-sshタイムアウト?
私のアプリケーションexec!
では、指定された時間が経過した後、SSH接続のコマンドを終了したいと思います。
コマンドの:timeout
forを見つけましたが、ドキュメントに従って、これは最初の接続専用です。コマンドNet::SSH.start
に相当するものはありますか?exec
私の最初の推測ではexec!
、コマンドが終了するまで待機するので使用しませんがexec
、呼び出しを使用して、反復ごとに実行ステータスをチェックし、指定された時間が経過すると失敗するループで囲みます。
ドキュメントを正しく理解していれば、このようなものです。
しかし、これは私には汚いようです。私はのようなものを期待していserver.exec("some command" { :timeout=>60})
ます。たぶん、この機能を実現するための組み込み関数がいくつかありますか?
rubygems - シェフをインストールできません。gem バージョンが net-ssh net-ssh-multi net-ssh-gateway と競合しています
rvm と空の gemset を使用すると、次のようになります。
以前のバージョンの net-ssh-gateway と net-ssh-multi をインストールして解決しようとしましたが、net-ssh-multi バージョン 1.1 は 1.1.2 をインストールすると混乱します。
gem - Rubber gem を使用して Varnish サーバーをセットアップする
キャッシュ サーバーにワニスをインストールしようとしています。私の次のスタックは...
HA プロキシ サーバー ----> キャッシュ (Varnish) サーバー ----> Nginx + Unicorn サーバー
HAProxy と Varnish のすべての構成ファイルを正しくセットアップして、パイプラインに沿ってトラフィックを移動することができました。ただし、キャッシュ サーバーをブートストラップしようとするとエラーが発生します。
** ERROR: While executing gem ... (Gem::DependencyError)
** Unable to resolve dependencies: rubber requires net-ssh (~> 2.4.0); fog requires net-ssh (>= 2.1.3); capistrano requires net-ssh (>= 2.0.14); net-ssh-gateway requires net-ssh (>= 2.6.4); net-scp requires net-ssh (>= 2.6.4); net-sftp requires net-ssh (>= 2.6.4)
** /tmp/gem_helper:32:in `block in <main>'
** : Unable to install versioned gem rubber:2.1.2 (RuntimeError
** )
** from /tmp/gem_helper:30:in `each'
** from /tmp/gem_helper:30:in `<main>'
なぜこれが起こっているのか理解できないようです。どんな助けでも素晴らしいでしょう。ありがとう