こんにちは。主にCORECの開発に携わっている、技術戦略部のおおはらです。

同部の松尾が主催した「Fabric + Serverspec 社内勉強会」に参加しました。

勉強会のゴールはFabricを使ってサーバに設定をし、正しく設定されたことをServerspecで確認する、ということです。

今回のハンズオン環境として、FabricとServerspecがインストールされたUbuntuのVMイメージが事前に配布されました。それをVMWare PlayerまたはVirtual Boxを使って各自のノートPCにハンズオン環境を構築しています。

最初に、松尾からハンズオンをスムーズに進めるためにUbuntuの便利な使い方(ワークスペース、tmux)の説明がありました。そして、勉強用のサーバをAWS上に各自作成しました。

IMG_20150313_145328


次にFabricの基本的な説明がありました。
FabricはPython製のデプロイツールで、サーバでsshが動いていればOK(サーバにpython不要)、既存のシェルスクリプトとFabricのメソッドでタスクを簡単に書ける、といった特徴を持ちます。
具体的なタスクの書き方、fabコマンドによるタスクの実行の仕方の解説の後、実習としてnginxのインストールやスタート、crontabの更新といったタスクを作成、実行しました。

最後にServerspecの解説です。
ServerspecはRuby製のサーバ自動テストツールで、サーバでsshが動いていればOK、RSpec形式でテストコードが書ける、といった特徴があります。
勉強会資料を参考に、Fabricでインストールしたnginxが動作していることを、Serverspecでテストを書き、実行して確認しました。

デプロイツールには大規模なシステムでの実績があるChefやAnsibleといった有名なものもありますが、別の選択肢としてシンプルにタスクが書けるFabricが弊社では上手く使えそうな気がします。

私が携わっているCORECではサーバ設定の一部をwikiで管理したり手動設定している部分があります。まずは、設定をファイルとしてgitで管理し、Fabricで設定することから始めていこうと思いました。