使えそうなFabricタスクをアップしていく予定です。
複数サーバのdstatの結果をtop風にコンソールにまとめて表示するタスクです。 Fabricの並列実行の仕組みで、各サーバで dstat を実行して表示します。
$ fab -H 192.168.1.1,localhost dtop
各サーバのdstatの実行結果が top 風に並べて表示されます。順番はホスト指定の順番です。 特にタスクのオプションを指定しなかった場合は、まず各サーバの /tmp/dstat を実行しようとします。それに失敗するとPATHが通ったdstatを実行します。
以下のようにタスクにオプションを渡して実行することもできます。
$ fab -H 192.168.1.1,localhost dtop:dstat_file=/path/to/dstat,dstat_opts='-Tclmdrn',interval='1'
- dstat_file
- dstat 実行ファイルの場所をフルパスで指定します。
- dstat_opts
- dstat に渡すオプションを指定します。デフォルトでは、-Tclmdrn が指定されています。そのままこの値がコマンドラインに渡されるので、複数のロングオプションなども指定可能です。
- interval
- dstat の更新間隔を秒単位で指定します。デフォルトは1秒です。
以下のタスクで dstat を配布することもできます。 各サーバに dstat を配布して実行権限をつけます。
$ fab -H 192.168.1.1,localhost dtop.put_dstat:dstat_file=/path/to/dstat,dst=/tmp
オプションは以下の通りです。
- dstat_file
- 配布元となる dstat ファイルをフルパスで指定します。デフォルトは ~/src/dstat となっています。
- dst
- dstat の配布先(Destination)を指定します。デフォルトは /tmp ディレクトリとなっています。
- Fabricの並列実行時の制限で、インタラクティブなパスワード入力ができません。パスワードなしでのログインができるように設定するか、実行時に -p オプションでのパスワード指定をするなどで対応してください。(パスワードをコマンドラインから与える場合は十分なセキュリティ上の注意を払ってください)
- 表示画面の初期化が対象サーバ数だけ走ってしまうため、起動直後は何回も画面クリアが行われます。これは、Fabricの並列実行時の制限で @runs_once デコレータが指定されていても、並列実行時にはそれぞれのホストに対して1回実行されてしまうという仕様によります。