めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Archerを使ってみる(2)

前回( Archerを使ってみる(1) - めも帖 )はエラーが出てしまい、何のエラーがだかわからないままでした。
しかし、「このエラーは Kwallify によるもの」とid:tokuhiromさんに教えていただきました。ありがとうございます。

PMは、結構必要になるかなと思います(Perlで普段開発している方なら、多くないのかも知れません)。最初の設定の時は、ちょっとあせるかも?

動作に必要なのかも?PM

  • Parallel::ForkManager
    • 初見...
    • 調べると意外に情報多いです(簡単な並列処理によるforkマネージャー、ということらしいです)

プラグインに必要なPM

  • Template
    • 言わずと知れた(?)Template::Toolkit
  • String::CamelCase
    • _を取ったり、大文字にしたりなんかそんな感じ?(調べきれず)
  • IO::Prompt
    • メッセージを表示して、y/nができるようになる
  • File::Rsync
    • rsyncのパスを聞かれます

Archer::Plugin::SVN::Diffに必要なPM

  • SVN::Agent
    • 実は一番怪しい。force installで入れたし。
  • Class::Accessor

実行手順

perl archer.pl Archer --dry-run --config config.yaml
  • 「Archer」…projectsで使用した名前
  • 「--config」…設定ファイル名

設定

work_dir: /home/d4-1977/workspace/sample/trunk
dest_dir: /home/d4-1977/assurer
  • work_dir + projectsで使用した名前 に移動してしまう
  • dest_dir:は、rsyncする場所になります

rsyncを行う場合

パスワードが必要(鍵にしたら、大丈夫なのかもしれないです)
サーバ増えたら、大変そうなので鍵にしておきたいところ

気になる点

  • 差分だけrsync出来るのか?(rsync単体では可能)
  • 指定したチェンジセットでデプロイ可能か?

設定ファイルのサンプル

global:
  work_dir: /home/d4-1977/workspace 
  dest_dir: /home/d4-1977/assurer

tasks:
  init:
    - module: SVN::Diff
      name: diff

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

    - module: SVN::Update
      name: Update

  process:
    - module: Rsync
      name: rsync

projects:
  sample:
    app:
      - 192.168.1.196 ←複数の場所を書くと複数にrsyncしてくれます
      - 192.168.1.142