Gosuke Miyashita about feed

デプロイツール Archer #0

12 February 2007

id:tokuhirom さん作のデプロイツール Archer を最近使い始めたのですが、これがすげーいいっす。

で、この週末は更に便利に使えるように、Archer 用のプラグイン書いたりしてました。

global:
  work_dir: /home/miya/work
  dest_dir: /home/miya/assurer

tasks:
init:
- module: SVN::Diff

- module: Confirm
  config:
    msg: really update? [y/n]

- module: SVN::Update

- module: Confirm
  config:
    msg: really deploy? [y/n]

process:
- module: Rsync

projects:
Assurer:
app:
- mizzy.org

こんな感じの設定をして、

$ archer.pl Assurer -c assurer.yaml

とか実行すると、

といった動作になります。

Archer 同梱の config.yaml では、svn log, svn up, rsync は Exec::Local プラグインで実行しているのですが、この辺りの記述をできるだけ簡略化したいな、ということで、こういったプラグインをつくってみました。

また、ライブドアテクノロジーセミナーの naoya さんのプレゼン で、Capistrano にはシェルプロンプトを表示して、指定したコマンドを複数のリモートサーバ上で一発で実行できる、という機能があって、これがうらやましかったので、Archer プラグインとして実装してみました。

tasks:
  init:
    - module: Shell
      config:
        role: app
        para: 1

projects:
mizzy.org:
app:
- www.mizzy.org
- svn.mizzy.org
- ftp.mizzy.org

といった設定をしやると、以下の様な感じで実行できます。(3つのサーバは実体が同じなので、結果が同じですが。)

$ ./archer.pl -c shell.yaml mizzy.org
[info] run hook init
[debug] load Archer::Plugin::Shell
[info] run Archer::Plugin::Shell
shell> uptime
[www.mizzy.org]  02:59:34 up 4 days,  3:39,  1 user,  load average: 0.21, 0.23, 0.22
[svn.mizzy.org]  02:59:34 up 4 days,  3:39,  1 user,  load average: 0.21, 0.23, 0.22
[ftp.mizzy.org]  02:59:34 up 4 days,  3:39,  1 user,  load average: 0.21, 0.23, 0.22
shell> 

Archer はこちらから 入手できます。また、俺が書いたプラグインなんかは、 ここに置いてあります