Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl

TaskDealをリリースしました。 - 複数代マシンへの設定の反映。Perl製のRuby Chefの代替ツール。

開発していたTaskDealの0.01をリリースしました。メジャーリリースです。Perl製のツールなので簡単にインストールでき、Webブラウザの画面から、複数マシンに環境設定を反映することができます。複数のマシンに、ひとつのコマンドを一度に送信することが可能です。

サンプル

以下からTaskDealを試してみることができます。安全のために、echoコマンドだけを実行できるようにしてあります。ehocコマンドは単なるシェルです。

TaskDealのサンプル

(ID admin, パスワードtest)

リポジトリ

リポジトリ

特徴

TaskDealには以下のような特徴があります。

  • 複数のマシンに対して、Webブラウザの画面からコマンドを実行できます。
  • WebSocketを使ってクライアント(対象マシン側)とサーバー(Webブラウザ側)が通信を行います。サーバーからクライアントに対してコマンドのpush配信を行います。
  • ポータブルです。Unix/LinuxサーバーとWindows上のCygwin(gcc4が必要)にインストールできます。
  • Perl 5.8.7以上だけが必要な要件です。インストールは、とても簡単です。
  • SSLもサポートしています。
  • ChefのようにRubyのDSLを使った専用の記述やクックブックを覚える必要はありません。慣れ親しんだシェルでマシンの設定を記述することができます。
  • サーバー側からpush配信型の通信を行っているので、クライアントの設定を行う必要はありません。クライアントはサーバー側に接続するだけでOKです。
  • クライアント側のコマンドのログを、サーバー側で取得するので、何が行われたがサーバー側で把握できます。

Unix/Linuxマシンへのインストール

TaskDealはとても簡単にインストールができます。

ダウンロード

tar.gzで固められたファイルをダウンロードして、展開して、ディレクトリを変更します。

curl -kL https://github.com/yuki-kimoto/taskdeal/archive/latest.tar.gz > taskdeal-latest.tar.gz
tar xf taskdeal-latest.tar.gz
mv taskdeal-latest taskdeal
cd taskdeal

セットアップ

次のコマンドを実行します。必要なモジュールがインストールされます。

./setup.sh

試験

セットアップが成功しているかどうかを次のコマンドで確認します。

prove t

"All tests successful"と表示されれば、セットアップは成功しています。

操作

サーバーの起動と再起動

以下のコマンドでTaskDealサーバーを起動します。サーバーはバックグラウンドで起動します。ポート番号のデフォルトは10040です。

./taskdeal-server

以下のURLにアクセスしてください。

http://localhost:10040

もしポートを変更したい場合はtaskdeal-server.confを編集してください。もしこのポートでアクセスできない場合は、ファイアーウォールの設定も見直してください。

Webブラウザの画面から、クライアントにタスクを実行することができます。

クライアントのための接続ポートはデフォルトで10041です。

サーバーの停止

--stop オプションでサーバーを停止できます。

./taskdeal-server --stop

クライアントの起動

以下のコマンドでクライアントを起動することができます。

./taskdeal-client

クライアントはサーバーからタスクを受け取ってそれを実行します。

クライアントはデフォルトで http://localhost:10041 に接続します。この値を変更したい場合は、 taskdeal-client.confのserverセクションのhostとportを変更してください。

クライアントの停止

  • -stop オプションでサーバーを停止することができます。
./taskdeal-client --stop

サーバーの設定

taskdeal-server.conf を見てください。

Client configuration

taskdeal-client.conf を見てください。

ロールとタスクの設定

server/rolesの中にロールを作成することができます。ロールとはタスクを格納する単なるディレクトリです。

まず最初に、server/rolesディレクトリの中にsmallとmidiumという名前でロールを作成してみましょう。好きな名前をロールにつけることができます。

server/roles/small
            /midium

タスクは単なる実行ファイルです。 ファイルには実行権限を与えてください。ロールディレクトリの中に作成することができます。

server/roles/small/echo

echoタスクは「foo」と出力する単なる実行可能なスクリプトです。

#!/bin/sh
echo "foo"

タスクはディレクトリを使って階層構造にすることもできます。

server/roles/small/echo
                  /dir/echo2

開発者

もし開発者であれば、サーバーとクライアントを以下のコマンドで起動できます。

# サーバーの起動
./devels
    
# クライアントの起動
./develc

次のURLでアクセスできます。

http://localhost:3000

gitを持っているのであれば、gitを使って簡単にインストールできます。

git clone git://github.com/yuki-kimoto/taskdeal.git

設定はtaskdeal-client.my.confとtaskdeal-server.my.confに書くのが便利でしょう。

Web Site

TaskDeal Web Site