Altax

An extensible deployment tool for PHP.


Altaxとは?

AltaxはPHPのためのデプロイツールです。 CapistranoFabricCinamon のようなリモートサーバにタスクを実行するコマンドラインツールとして設計されています。 またタスクのインストールと管理を簡単にするためのプラグインメカニズムも持っています。

以下はシンプルなgitデプロイタスクの定義です。タスクはPHPで書くことができます。

// プラグインのコマンドクラスをオートローディングする
if (is_file(__DIR__ . '/vendor/autoload.php')) require_once __DIR__ . '/vendor/autoload.php';

// 管理ノードをロールに登録する
Server::node("web1.example.com", "web");
Server::node("web2.example.com", "web");
Server::node("db1.example.com",  "db");

// タスクの登録
Task::register("deploy", function($task){

    $appDir = "/path/to/app";

    // それぞれのノードに対して並列にプロセスを実行する
    $task->exec(function($process) use ($appDir){

        // コマンドをリモートで実行してリターンコードを取得する
        if ($process->run("test -d $appDir")->isFailed()) {
            $process->run("git clone git@github.com:path/to/app.git $appDir");
        } else {
            $process->run(array(
                "cd $appDir",
                "git pull",
                ));
        }

    }, array("web"));

});

特徴

プロセスを並列実行

Altaxはコマンドをリモートサーバで実行するため、プロセスを並列に走らせます。

簡単に使えます

Altaxは単一のPHPアーカイブ(phar)ファイルとして使用できます。 実行に必要なすべての依存物はこのファイルにまとめられています。 そして、オンラインインストーラスクリプトがあります。 ワンライナーを使ってインストールできます。

プラグインメカニズム

Altaxはタスクのインストールと管理を簡単にするためのプラグインメカニズムも持っています。 プラグインのインストールにはcomposerを使っています。 なので、プラグインはPackagistで共有できます。

組み込みのComposer

Altaxはプラグインをインストールするために組み込みのcomposerを含んでいます。 composerの機能をAltaxのコマンドで使うことができます。 composerを別にインストールする必要はありません。


ここからはじめよう

あなたがAltaxの初心者ならば、まずチュートリアルを読むことをおすすめします。