複数のマシンに同時に同じコマンドを送る - pdsh

複数のリモートマシンに同時に同じコマンドを送るツールpdshについて。 hadoop系はsshコマンドを使用してリモートマシンでコマンドを実行することが多く、pdshもよく出てくるので、ここでまとめておく。 ここでは、以下の通り、driverノードからworker1ノード, worker2ノードの2台に同じコマンドを送る例を見ていく。 worker1 ┌─────► 192.168.64.4 driver node │ 192.168.64.3 ───┤ │ worker2 └─────► 192.168.64.5 Installation 基本的にapt, yum, brewなどのパッケージャで対応している。 $ sudo apt install pdsh $ pdsh Usage: pdsh [-options] command ... -S return largest of remote command return values -h output usage menu and quit -V output version information and quit -q list the option settings and quit -b disable ^C status feature (batch mode) -d enable extra debug information from ^C status -l user execute remote commands as user -t seconds set connect timeout (default is 10 sec) -u seconds set command timeout (no default) -f n use fanout of n nodes -w host,host,....

January 1, 2023

公開鍵認証でsshにパスワードレスでログインする

公開鍵を登録して、SSHにパスワードレスでログインする方法を書いていく。ついでに、 その際に使う.ssh/authorized_keyファイルのオプションについても簡単にまとめておく。 ┌─────────────┐ ┌─────────────┐ │ 192.168.1.1 │ │ 192.168.1.2 │ │ │ ssh │ │ │ host_A ├──────────►│ host_B │ │ (client) │ w/o passwd│ (server) │ └─────────────┘ └─────────────┘ ssh_id ssh_id.pub [private key] [public key] クライアントホスト上で鍵を生成する 秘密鍵と公開鍵のペアを生成する ### host_A上 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa デフォルトでは.ssh/配下に秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成される。 ### host_A上 $ ls -l .ssh/ total 20 -rw------- 1 ubuntu ubuntu 2602 Dec 31 12:39 id_rsa -rw-r--r-- 1 ubuntu ubuntu 571 Dec 31 12:39 id_rsa....

December 31, 2022

5分でリモートサーバにプロキシをたててウェブアクセスする

デバッグをしていて、海外からウェブアクセスしたい場合が結構あります。コマンドラインツールだったら、単純にsshでリモートマシンに入って、curlコマンドを打てば良いのですが、jsの実行やグラフィカルなUIのテストをしたい場合は、ブラウザでのアクセスが必要になります。 こういう場合に、リモートにあるマシンにウェブのporxyサーバを立ち上げて、そこ経由でアクセスすることにまります。 proxyサーバはインストールではなく、Pythonスクリプトベースのものがたくさんるので、これを使います。 5分あればセットアップできます。 構成図はこんな感じです。 リモートサーバにPythonのproxyを準備する いろいろあるけど、今回はpython-proxyを使います。 ### リモートマシンのシェル $ pip3 install pproxy $ pproxy -l http://localhost:8899 Serving on localhost:8899 by http sshのポートフォワードで、ローカルのportをリモートのportにトンネルさせる sshのポートフォワードで、ローカルとリモートを繋ぎます。 リモートホスト: 34.95.141.133 ローカルの転送Port: 8080 リモート側の転送ホストとPort: localhost:8899 上記の場合だとこのコマンドでトンネル作成できます。 ### ローカルマシンのシェル $ ssh [email protected] -L 8080:localhost:8899 ... ブラウザでproxy設定をする ローカルのブラウザのproxy設定を以下の通りに変更する。 proxyサーバ: localhost proxy Port: 8080 ブラウザからアクセス この記事で書いた自分のアクセス元のIPロケーションを教えてくれるifconfig.coにアクセスしてみる。 ちゃんとリモートサーバのロケーション情報が返ってきて、proxy経由だとわかる。

February 20, 2022