Vagrant+Fabric試してみる

乗り遅れてる感満載なんだけど、必要に迫られてやっと触ってみた。
迫られてるというか産休中でドットインストールやってみてたら脱線しただけなんだけども。

Vagrantで実行するのにAnsibleがいいのかFabricがいいのか、よくわからなかったので調べた。
この2択にしたのはお手軽そうだったから。
ちなみに個人でテスト開発するようなちっぽけな環境構築なのでChefは最初から省いた。

まずはより手軽そうなFabric。

  • 参考

Vagrant Fabricで簡単プロビジョニング | Ryuzee.com
http://docs.fabfile.org/en/latest/api/contrib/files.html
http://nullege.com/codes/search/fabric.contrib.files.sed
http://nullege.com/codes/search/fabric.contrib.files.append

  • 前提

VMはCentOS6.4をVagrantで構築済み。
HostはOSX

  • やりたいこと

https://gist.github.com/fuzzy31u/117a6e00f93423aeca10

これはshellスクリプトのprovision。
# TODO manually!
とか書いてあるのを自動化したかったです。

全体的にはhttpサーバ起動したりMySQL, Pythonの最新バージョンをrpmインストールしたりソースインストールしたりするような手続き。

  • やったこと
    • Fabricインストール@ホストOS
$ sudo pip install fabric
    • Fabric provisionerインストール@ホストOS
$ vagrant plugin install vagrant-fabric

https://gist.github.com/fuzzy31u/a8e4e63df010f2fb7023

ファイル書き換えはputで置き換えなくてもsedとかappendが使えるよう

    • VagrantFile編集

https://gist.github.com/fuzzy31u/4912a6c0e9710c491944

    • プロビジョニングを適用しつつup
vagrant up --provision
  • Fabric触ってみて

簡単、学習コスト低い。
この程度であればファイル書き換えとか普通にできそうなのでもはやこれで充分。
困ったことと言えば、
複数行の記述を追記する時とかに改行コードで区切ってだらだら文字書くのが見にくい。
あと対話モードの実行がわかんなかった。(ちゃんと調べればできるのかも?